Tag: changelistener

Java isRollover()方法在我的swing应用程序中不会产生事件

我正在读一本名为Swing:A Beginner’s guide的好书。 书中有这样的代码,它创建了一个按钮和一个标签,用于警告按钮的状态变化事件: //Demonstrate a change listener and the button model package swingexample2_6; import java.awt.*; import javax.swing.*; import javax.swing.event.*; public class ChangeDemo { JButton jbtn; JLabel jlab; public ChangeDemo() { //Create a new JFrame container JFrame jfrm = new JFrame(“Button Change Events”); //Specify FlowLayout for the layout manager jfrm.getContentPane().setLayout(new FlowLayout()); //Give the frame an […]

JMenuBar SelectionModel ChangeListener仅触发一次

我试图让我的JMenuBar模拟Firefox和iTunes菜单栏的行为。 行为:菜单栏最初是隐藏的。 但是,当您按Alt ,会出现菜单栏(选择第一个项目),当您没有选择菜单项时,菜单栏会消失。 我的想法是通过其SelectionModel上的ChangeListener监听JMenuBar选择更改。 但是,附加的SSCCE的行为并不理想。 框架加载时, JMenuBar不可见。 按Alt ,会出现菜单栏,并选择第一个菜单(感谢WindowsLookAndFeel )。 但是,每次后续的Alt按下都不会触发ChangeEvents 。 我无法弄清楚为什么…… 有人有光照吗? public class MenuBarTest extends javax.swing.JFrame { public MenuBarTest() { initComponents(); jMenuBar1.setVisible(false); jMenuBar1.getSelectionModel().addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { System.out.println(e.toString()); jMenuBar1.setVisible(jMenuBar1.isSelected()); System.out.println(jMenuBar1.isSelected()); System.out.println(jMenuBar1.getSelectionModel().isSelected()); } }); } private void initComponents() { jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenuItem1 […]

JSpinner给出了旧的价值观

我在我的项目中使用几个JSpinner来显示小时和分钟。 当JSpinner递增或递减时,我必须将值保存到数据库中。 但问题是JSpinners给了我很旧的价值观。 例如 – 如果显示的时间是09:30 ,我将时间增加到10:30 ,我将返回09:30作为返回值。 我正在使用以下代码 更新的SSCCE package spinnerupdation; import java.awt.Container; import java.awt.FlowLayout; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.SpinnerDateModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.text.DateFormatter; import javax.swing.text.DefaultFormatterFactory; /** * * @author Rohan Kandwal */ public class SpinnerUpdation extends JFrame{ public JSpinner spinner; SpinnerUpdation(){ Container […]

为什么我的ChangeListener只对JMenu作出反应,而对JMenuItem不作出反应?

现在,我有一个JMenu,还有一些JMenuItems。 当JMenu和JMenuItem的状态更改为“selected”时,我希望我的程序执行一些操作。 我不使用MouseLitener的MouseOver,因为我希望用户也可以使用键盘在菜单中导航。 现在,我写了这个监听器: class MenuItemListener implements ChangeListener { @Override public void stateChanged(ChangeEvent arg0) { JMenuItem item = (JMenuItem) arg0.getSource(); if(item.isSelected()) System.out.println(item.getText()+” pressed!”); } } 当我将这个监听器添加到JMenu时,它可以正常工作,但是当我将它添加到JMenuItem时,没有任何反应……当我删除if语句以便监听器对两者做出反应时,当菜单被选中并且被选中时我对JMenu以及对于JMenuItem。 所以,正如我所见,JMenuItem无法“通过”isSelected()测试……但是什么可能是个问题呢? :S

JavaFX ChangeListener并不总是有效

我有一个JavaFX应用程序,并在那里有一个并发任务。 当Task正在运行时,我想将updateMessage()中的消息附加到TextArea 因为绑定不会将新文本追加到TextArea,所以我使用了ChangeListener worker.messageProperty().addListener((observable, oldValue, newValue) -> { ta_Statusbereich.appendText(“\n” + newValue); }); 这是有效的,但不是每次改变。 我用System.out.println()检查了它,并在1到300的任务中计算 for (Integer i = 1; i <= 300; i++) { updateMessage(i.toString()); System.out.println(i.toString()); } 任务中的println()给了我想要的1,2,3,4,5,6,7,8等等,但我的TextArea显示1,4,5,8,9我然后添加了一个println in ChangeListener得到相同的结果,1,4,5,8,9(结果是随机的,不总是1,4,5 ……) 为什么? 有没有其他方法将消息文本附加到TextAres,可能与绑定?

Java 8:Observable List – 在属性更改时调用Invalidation Listener或Change Listener

我构建一个自定义属性并将其添加到可观察列表中。 但是如果属性内容发生更改,则不会调用侦听器。 以下代码段显示了“构建”: public static final class TestObject { private final ReadOnlyStringWrapper title = new ReadOnlyStringWrapper(); private final BooleanProperty selected = new SimpleBooleanProperty(false); public TestObject(String title) { this.title.set(title); } public String getTitle() { return title.get(); } public ReadOnlyStringProperty titleProperty() { return title.getReadOnlyProperty(); } public boolean getSelected() { return selected.get(); } public BooleanProperty selectedProperty() { return […]