有多个 JButton

凯文

对不起,这个简单的问题,但我真的很陌生,无法真正找到答案。我对如何添加两个(或更多)JButton 感到困惑。我似乎无法同时显示两个,只有一个显示,即“部门”之一。我最近的尝试如下。如何让两个按钮都显示在窗口的按钮上?

public class Calculator implements ActionListener {
private JFrame frame;
private JTextField xfield, yfield;
private JLabel result;
private JButton subtractButton;
private JButton divideButton;
private JPanel xpanel;

public Calculator() {
    frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new BorderLayout());

    xpanel = new JPanel();
    xpanel.setLayout(new GridLayout(3,2));

    xpanel.add(new JLabel("x:"));
    xfield = new JTextField("0", 5);
    xpanel.add(xfield);

    xpanel.add(new JLabel("y:"));
    yfield = new JTextField("0", 5);
    xpanel.add(yfield);

    xpanel.add(new JLabel("x*y="));
    result = new JLabel("0");
    xpanel.add(result);
    frame.add(xpanel, BorderLayout.NORTH);

    subtractButton = new JButton("Subtract");
    frame.add(subtractButton, BorderLayout.SOUTH);
    subtractButton.addActionListener(this);

    divideButton = new JButton("Division");
    frame.add(divideButton, BorderLayout.SOUTH);
    divideButton.addActionListener(this);

    frame.pack();
    frame.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent event) {
    int x = 0;
    int y = 0;

    String xText = xfield.getText();
    String yText = yfield.getText();

    try {
        x = Integer.parseInt(xText);
      }
    catch (NumberFormatException e) {
        x = 0;
      }

    try {
        y = Integer.parseInt(yText);
      }
    catch (NumberFormatException e) {
        y = 0;
      }

    result.setText(Integer.toString(x-y));
  }
}
tfosra

在将 JPanel 添加到框架的 SOUTH 之前,您需要在 JPanel 中添加两个按钮。

所以代替

subtractButton = new JButton("Subtract");
frame.add(subtractButton, BorderLayout.SOUTH);
subtractButton.addActionListener(this);

divideButton = new JButton("Division");
frame.add(divideButton, BorderLayout.SOUTH);
divideButton.addActionListener(this);

你可以这样做

JPanel southPanel = new JPanel();

subtractButton = new JButton("Subtract");
southPanel.add(subtractButton);
subtractButton.addActionListener(this);

divideButton = new JButton("Division");
southPanel.add(divideButton);
divideButton.addActionListener(this);

frame.add(southPanel , BorderLayout.SOUTH);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章