Tag: actionlistener

Java动作监听器

我的程序中有4个按钮列表。 截至目前,我有4个循环,检查是否已点击按钮。 有没有一种简单的方法来检查是否已经点击任何按钮而不是循环遍历每个列表以查看是否单击了某个按钮。 必须有一种更简单的方法来检查“actionSource == anybutton”…

JComboBox动作监听器

我有这个问题。 我有多个JComboBoxes(共5个)。 对于每个comboBox,我添加一个ActionListener,但所有这些都是相同的ActionListener,名为: ComboBoxActionPerformed(java.awt.event.ActionEvent e) 当执行该动作时,我会查看事件(e)并执行: JComboBox c = ((JComboBox)e.getSource()); //DO WORK relating to c as thats the combobox that triggered. 但问题是,当我在任何combobox中更改某些内容时,Action总是由我附加actionlistner的最后一个combobox触发。 有谁有任何想法? 然后我切换到ItemListner。 这就是我正在做的事情 class MyActionListner implements ItemListener { //STUFF @Override public void itemStateChanged(ItemEvent evt) { //DO STUFF } } public JComboBox createCombo() { JComboBox box = new JComboBox(); box.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “val1”, […]

ActionListener最佳实践

对不起标题,可能太通用了。 我已经阅读了Java 如何编写动作监听器教程,我已经阅读了这个问题 ,但我仍有一些疑问:当我不得不多次执行相同的动作时,我想知道哪种解决方案是最好的。 我想重用相同的ActionListener ,但我不确定如何以最好的方式实现这一点(在术语方面:代码可读性,代码可持续性,性能和代码风格)。 首先是“标准”代码(如果我不打算重用动作监听器,我将使用它): btnMenu.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { Navigator.showMenu(); } } ); 这样我就无法重用任何obv,因为它是一个匿名的内部类…… 现在,我可以想到以下解决方案: 在字段中存储匿名内部类的引用(很可能是static final ); 编写一个实现ActionListener接口的新类。 解决方案1的示例代码: public static final MENU_ACTION_LISTENER = new ActionListener() { public void actionPerformed(ActionEvent e) { Navigator.showMenu(); } }; btnMenu.addActionListener(MENU_ACTION_LISTENER); 解决方案2的示例代码: // package-private, only GUI-package classes should be able to use […]

如何在Swing中组织我的动作?

我目前正在替换我的匿名ActionListeners new ActionListener() { @Override public void actionPerformed(final ActionEvent event) { // … } } 使用表示操作的类文件: public class xxxxxxxAction extends AbstractAction { } 但是,我的GUI能够执行很多操作(例如CreatePersonAction,RenamePersonAction,DeletePersonAction,SwapPeopleAction等)。 有没有一种很好的方法将这些类组织成一个连贯的结构?

无法使用按钮实例化类

我正在尝试制作一个屏幕捕获程序。 我所拥有的是一个透明窗口,它将捕获区域,并在其上capture一个按钮,我试图实例化一个类captureScreen ,当使用命令提示符单独执行captureScreen ,该类可以正常工作 我试图在按下capture按钮时实例化此captureScreen类。 我试过在screenrecord.java上保留这个class ,也把代码放在event listener 。 在这两种情况下,我都会遇到这些错误 AWTException,must be caught or declared 在 Robot robot = new Robot(); 和BufferedImage image行中的IOException。 保持captureScreen.java分离不会做任何事情。 System.out.println(“Start”); 甚至不打印任何东西。 这是我的screenrecord.java代码 public class screenrecord extends JFrame implements ActionListener{ public screenrecord() {… } public void actionPerformed(ActionEvent e){ if (“record”.equals(e.getActionCommand())) { captureScreen a = new captureScreen(); } } } 而captureScreen.java ,可以单独使用。 […]

我的ActionListener如何在JButton中访问另一个类中的变量?

我正在为一个项目做一台老虎机。 我无法让我的JButton从我的ArrayList生成新的随机数。 我可以在程序启动时随机化数字并设置actionlistener ,但它不能满足我的需要。 它仅用于测试目的。 我的Actionlistener位于不同的Java文件中。 一切正常,单击按钮时,我无法弄清楚如何在plc1 , plc2和plc3的占位符中生成新的random。 我刚刚在3周前开始真正开始编码。 请不要讨厌,这是我的第一个项目。 package GGCGuiLotto; import java.util.ArrayList; import java.awt.Color; import java.awt.Image; import java.awt.BorderLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Icon; import javax.swing.JOptionPane; import javax.swing.JLabel; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JTextField; import java.util.Random; public class GGCGuiLotto { public static void main(String[] args) { […]

如何在JTextField上删除MouseListener / ActionListener

我有以下代码将ActionListener添加到JTextField: chatInput.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { chatInputMouseClicked(evt); } }); 现在如何使用chatInput.removeMouseListener()删除此MouseListener,因为此函数需要参数?

您的类应该实现ActionListener还是使用匿名ActionListener类的对象

实现java.awt.event.ActionListener接口的最佳方法是什么? 让您的类实现ActionListener并将其添加为ActionListener: class Foo implements ActionListener{ public Foo() { JButton button = new JButton(); button.addActionListener(this); } public void actionPerformed(ActionEvent e) { } } 或者添加匿名ActionListener类的对象: class Foo{ public Foo() { JButton button = new JButton(); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } }); } }

让ActionListener监听JTextField中的更改而不是仅输入?

因此,您可能知道,如果您有一个文本字段并且向其添加了ActionListener,它将只收听Enter按钮的按键。 但是,我想让我的ActionListener监听文本中的更改。 所以基本上我有这个: public static JPanel mainPanel() { JPanel mainp = new JPanel(); JTextArea areap = new JTextArea(“Some text in the textarea”); JTextField fieldp = new JTextField(“Edit this”); areap.setEditable(false); fieldp.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(//change in textfield, for instance a letterpress or space bar) { //Do […]

JButtons的2D数组中的简单ActionListener

好的,所以我正在制作一个2d的JToggleButtons数组。 我得到了动作监听器,但我无法分辨哪个按钮是哪个。 如果我点击一个,它返回的就像是 javax.swing.JToggleButton [,59,58,19×14,alignmentX = 0.0,alignmentY = 0.5,边界= javax.swing.plaf.BorderUIResource $ CompoundBorderUIResource @ 53343ed0,旗帜= 296,MAXIMUMSIZE =,=的minimumSize,首选大小=,=的DefaultIcon ,disabledIcon =,disabledSelectedIcon =,余量= javax.swing.plaf.InsetsUIResource [顶= 2,左= 14,底= 2,右= 14],的paintBorder =真,paintFocus =真,pressedIcon =,rolloverEnabled =假,rolloverIcon =,rolloverSelectedIcon =,selectedIcon =,文本=] 无论如何在按钮对象中粘贴某种项目或数字以关联每个按钮? 然后当点击按钮时,我可以检索给它的项目或编号? 这是我的按钮生成器代码。 (我如何使“int l”关联(和计数)到每个按钮,当它被调用时,它将返回该数字,或沿着这些行返回的东西。 JToggleButton buttons[][] = new JToggleButton[row][col]; int l = 0; for (int i = 0; i < row; i++) […]