如何解决在 JFrame 中使用按钮数组
我在 Java 中做了一个 JButton
数组,但我不知道在框架中呈现它们,这可能吗?
这是数组,我插入到每个索引ImageIcon
:
JButton [] buttons=new JButton[55];
解决方法
例如这个:
javax.swing.JFrame frame = new javax.swing.JFrame("Just a JFrame Window Demo");
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
frame.setLayout(new java.awt.BorderLayout());
javax.swing.JPanel topPanel = new javax.swing.JPanel();
topPanel.setLayout(new java.awt.GridLayout());
javax.swing.JLabel headerLabel = new javax.swing.JLabel(
"50 JButtons in a grid using the GridLayout Layout:");
headerLabel.setHorizontalAlignment(javax.swing.JLabel.CENTER);
headerLabel.setPreferredSize(new java.awt.Dimension(500,80));
topPanel.add(headerLabel);
javax.swing.JPanel centerPanel = new javax.swing.JPanel();
centerPanel.setLayout(new java.awt.GridLayout(5,10));
javax.swing.JButton[] buttons = new javax.swing.JButton[50];
for (int i = 0; i < buttons.length; i++) {
buttons[i] = new javax.swing.JButton(String.valueOf(i));
buttons[i].setName("button_" + i);
buttons[i].addActionListener(new AllButtonsActionListener());
centerPanel.add(buttons[i]);
}
javax.swing.JPanel bottomPanel = new javax.swing.JPanel();
bottomPanel.setLayout(new java.awt.FlowLayout());
javax.swing.JButton somethingButton = new javax.swing.JButton("Some Button");
somethingButton.addActionListener(new AllButtonsActionListener());
javax.swing.JButton exitButton = new javax.swing.JButton("Exit");
exitButton.addActionListener(new AllButtonsActionListener());
bottomPanel.add(somethingButton);
bottomPanel.add(exitButton);
frame.add(topPanel,BorderLayout.NORTH);
frame.add(centerPanel,BorderLayout.CENTER);
frame.add(bottomPanel,BorderLayout.SOUTH);
frame.pack();
javax.swing.SwingUtilities.invokeLater(() -> {
frame.setVisible(true);
frame.setLocationRelativeTo(null);
});
还有一个内部类来捕捉按钮选择:
// Inner Class
class AllButtonsActionListener implements java.awt.event.ActionListener {
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
String aCmd = e.getActionCommand().toLowerCase();
System.out.println("Action Command is: " + aCmd);
if (aCmd.equals("exit")) {
System.exit(0);
}
}
}
当上面的代码运行时,你应该看到...
当您选择任何按钮时,其标题将显示在控制台窗口中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。