public class Creator extends JFrame {
JLabel[] pos;
JTextField[] monInitFi;
JPanel panel, statusP, inputP;
JTextField numMonsFi;
JButton goB, initRollB;
int numMons;
public Creator() {
panel = new JPanel();
createInputP();
panel.add(inputP);
add(panel);
}
//The Input board
public JPanel createInputP() {
inputP = new JPanel();
numMonsFi = new JTextField(3);
inputP.add(numMonsFi);
goB = new JButton("Go");
goB.addActionListener(new goBListener());
inputP.add(goB);
return inputP;
}
//Creates the initiative input board.
public JPanel createStatusP() {
statusP = new JPanel();
monInitFi = new JTextField[numMons];
for (int i = 0; i < numMons; i++) {
monInitFi[i] = new JTextField(3);
statusP.add(monInitFi[i]);
}
initRollB = new JButton("Roll");
statusP.add(initRollB);
return statusP;
}
//The button listener, should update numMons, and create and add the initiative panel.
public class goBListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
numMons = Integer.parseInt(numMonsFi.getText());
createStatusP();
panel.add(statusP);
}
}
public static void main(String[] args) {
Creator c = new Creator();
c.setVisible(true);
c.setSize(1000, 600);
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c.setTitle("D&D 4e Encounter Tracker");
}
}
所以这只是我想要做的一个示例,但我甚至无法获得基本工作。当我运行这个statusP(JPanel)
没有显示出来,我不确定是因为它没有运行,或者因为它不起作用。JTextFields和其他小部件的可变大小的阵列
我试过把createStatusP()
方法放在GUI constructor
中,但只有JButton
会出现,就好像for循环没有运行一样。
任何帮助将不胜感激。
那么...你想要做什么? – MarsAtomic
请将'frame.setVisible(true)'作为'main'的最后一行。首先将组件添加到容器中,然后调用'pack()'然后调用'setVisible()',这样它就能够以更好的方式实现它的大小。你有没有进行绘图。你不要先向人们展示你的空白表格,先画一张表格,然后画出来然后展示出来。此外,请阅读[Swing中的并发](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/)。此外,你是否试图将'JTextField'的列数从'3'增加到一些更大的值! –