我有以下代码,我在其中为每个字母制作按钮,并且我想听哪个字母被单击。我已经创建了按钮。但我有两个问题,按钮溢出框架,我必须手动调整框架大小才能看到所有按钮。我对 JFrame 使用了 setSize,但它仍然不符合我的预期。
我还想将事件列表附加到每个按钮,因为我制作它们并在单击按钮时获取按钮名称(字母)。
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.event.*;
public class HangmanGUI {
public static void main(String[] args){
new HangmanGUI();
}
//constructor for Hangman
/**
* Instantiates a new hangman gui.
*/
public HangmanGUI() {
JFrame myframe= new JFrame();
JPanel myPanel = new JPanel();
myframe.setSize(600,400);
for (char alphabet = 'A';alphabet<='Z';alphabet++){
myPanel.add(new JButton(alphabet+""));
}
myframe.add(myPanel);
myframe.pack();
myframe.setTitle("Hangman Game");
myframe.setVisible(true);
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
这里有任何其他更好的方法或一些不好的风格 - 请指出。非常感谢
最佳答案
the buttons overflow the frame,
JPanel 的默认布局管理器是 FlowLayout,因此按钮会从面板中流出。
而是使用GridLayout
,这样您就可以控制每行显示的按钮数量。
I used setSize for JFrame, but it still did not fit the frame as I expected.
pack() 撤消 setSize()。最好使用 pack() 而不是 setSize() 并让布局管理器完成其工作。
关于java - 如何包装 JFrame 以使其适合我的所有按钮并将事件监听器附加到 Java 中的这些按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19389894/