java - 数字键盘更有效的方式

标签 java arrays swing

是否有更有效的方法来添加按钮 R、0 和 E?是否有可能以某种方式将它们添加到数组中?

public Keypad() {
        setTitle("Keypad");
        setSize(220, 250);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setLayout(new GridLayout(4, 3, 2, 2));

    JButton[] buttonArray = new JButton[10];
    for (int i = 1; i < buttonArray.length; i++) {
        buttonArray[i] = new JButton(String.valueOf(i));
        add(buttonArray[i]);
        buttonArray[i].addActionListener(this);
    }

    add(buttonR);
    add(button0);
    add(buttonE);

    setVisible(true);
    setResizable(false);
}

最佳答案

您的效率不可能比现在更高了。您可以稍微重新组织代码,以在单个方法中将 ActionListener 的添加和按钮的添加移动到层次结构中。另外,JButton[] 没什么用,所以放弃它,您将在内存中节省几个字节(但实际上没什么大不了的):

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Keypad extends JFrame implements ActionListener {

    private JButton buttonR = new JButton("R");
    private JButton button0 = new JButton("0");
    private JButton buttonE = new JButton("E");

    public Keypad() {
        setTitle("Keypad");
        setSize(220, 250);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setLayout(new GridLayout(4, 3, 2, 2));
        for (int i = 1; i < 10; i++) {
            addButton(new JButton(String.valueOf(i)));
        }

        addButton(buttonR);
        addButton(button0);
        addButton(buttonE);

        setResizable(false);
        setVisible(true);
    }

    private void addButton(JButton button) {
        button.addActionListener(this);
        add(button);
    }

    @Override
    public void actionPerformed(ActionEvent e) {


    }
}

关于java - 数字键盘更有效的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15001635/

相关文章:

java - 使用 Jenkins 和 maven 发布 WAR 文件到 Artifactory

python - 将图像数据集存储到 4D 数组中然后显示每个图像会导致颜色失真

java - 为什么当我将图像设置到光标时,它不起作用?

java - Android Dalvik,支持通用的Java Swing、Awt、Swt、Gwt、SwingX、ApachePivot?

java - 数组不打印内容

java - 在Java中执行多重查询时出错

PHP - 访问多维数组值

java - 如何将任何其他布局管理器用于 jscrollpane 而不是使用空布局

java - 在getView里面写方法

Javascript数组排序问题