Netbeans 的操作使用自定义参数执行



我正在做学校的作业。我们有10个按钮,假设是字母表的前10个字母。例如,当您单击'A'按钮时,字符'A'被添加到jLabel。

我知道我可以为每个按钮写一个新函数,但是有更好的方法吗?比如我通过参数传递字母,只使用一个函数?或者是否有可能检测到什么按钮称为我的事件处理程序,并根据它添加字母?

是的,您可以使用actionCommand。这里有这样的例子。如何使用按钮。

的例子:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class ButtonExample {
    private JPanel panel;
    private JLabel label;
    public ButtonExample(){
        panel = new JPanel();
        label = new JLabel(" ");
        ActionListener listener = new MyActionListener();
        JButton buttonA = new JButton("Press me A");
        buttonA.setActionCommand("A");
        buttonA.addActionListener(listener);
        JButton buttonB = new JButton("Press me B");
        buttonB.setActionCommand("B");
        buttonB.addActionListener(listener);
        JButton buttonC = new JButton("Press me C");
        buttonC.setActionCommand("C");
        buttonC.addActionListener(listener);
        panel.add(buttonA);
        panel.add(buttonB);
        panel.add(buttonC);
    }
    private class MyActionListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            String text = (label.getText() == null || label.getText().isEmpty() )?"":label.getText();
            label.setText(text+e.getActionCommand());           
        }

    }
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("Textfield example");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setLocationByPlatform(Boolean.TRUE);
        ButtonExample buttonExample =new ButtonExample();
        frame.add(buttonExample.panel,BorderLayout.CENTER);
        frame.add(buttonExample.label,BorderLayout.NORTH);
        //Display the window.
        frame.pack();
        frame.setVisible(Boolean.TRUE);
    }
    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }

}

你可以这样做

Yourlabel.setText(yourbutton.getText());

它会把你的按钮名称说A到你想要的标签!这只是一个提示,你可以得到一个想法

相关内容

  • 没有找到相关文章

最新更新