[英](IntelliJ GUI Designer) Runtime NullPointerException upon adding a component to a JPanel
[英]JPanel additional column on GUI upon run?
我正在制作一个学校项目,我和我的小组正在制作一个带有GUI和所有的财富之轮游戏。 在制作拼图的面板时 ,我遇到了创建额外列的问题。 它也可能只是空的空间,但无论如何,我想知道如何摆脱它。 下面是代码letterBoard
它通过运行类wheelGUI
类。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class letterBoard extends JPanel
implements ActionListener
{
private JTextField[] fields = new JTextField[TEXT_FIELD_COUNT];
private Box[] boxes = new Box[SUIT_COUNT];
private static int TEXT_FIELD_COUNT = 14;
private static int SUIT_COUNT = 1;
Color datGreen=new Color(0, 180, 100);
public letterBoard()
{
setBackground(Color.GRAY);
JPanel panel = new JPanel(new GridLayout(4,1));
panel.setBackground(datGreen);
for(int t=0; t<4; t++)
{
for (int i =0; i < boxes.length; i++)
{
boxes[i] = Box.createHorizontalBox();
for (int j=0; j< TEXT_FIELD_COUNT/SUIT_COUNT; j++)
{
int index = i * (TEXT_FIELD_COUNT/SUIT_COUNT) + j;
fields[index] = new JTextField(" ");
fields[index].setEditable(false);
fields[index].setPreferredSize(new Dimension(50, 50));
fields[index].setBorder(BorderFactory.createLineBorder(Color.BLACK,1));
panel.add(fields[index]);
panel.add(boxes[i]);
panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK,3),"WHEEL OF FORTUNE"));
}
}
}
Box b1 = Box.createVerticalBox();
b1.add(panel);
b1.add(Box.createVerticalStrut(5));
b1.add(Box.createHorizontalStrut(5));
add(b1);
}
public void actionPerformed(ActionEvent e)
{
}
}
在确定问题方面的任何帮助都会很棒。 这是编译时的样子。 右边的绿色条是问题所在。 谢谢!
也许我只是错过了这一点,但我没有看到所有Box
属性的需要......
我只是将GridLayout
修改为布局14列作为行的优先级,并删除所有Box
东西......
public LetterBoard() {
setBackground(Color.GRAY);
JPanel panel = new JPanel(new GridLayout(0, 14));
panel.setBackground(datGreen);
for (int t = 0; t < 4; t++) {
for (int i = 0; i < boxes.length; i++) {
for (int j = 0; j < TEXT_FIELD_COUNT / SUIT_COUNT; j++) {
int index = i * (TEXT_FIELD_COUNT / SUIT_COUNT) + j;
fields[index] = new JTextField(" ");
fields[index].setEditable(false);
fields[index].setPreferredSize(new Dimension(50, 50));
fields[index].setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
panel.add(fields[index]);
}
}
}
panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK, 3), "WHEEL OF FORTUNE"));
add(panel);
}
所有Box
东西都在每一行的末尾添加了一个额外的“列”......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.