我对扩展JPanel的类有问题。在我的基于JFrame的游戏中,我有几个在程序运行时交换的JPanel(登录面板,新的acc表单面板等...全部在一个JFrame中)。我想用GBL切换到面板,但不幸的是它不能很好地显示内容......它只在屏幕中心显示ChatBox(JTextArea)和输入字段(JTextField),但我想把它们放在旁边其他。我的JPanel中的GridBagLayout不起作用
public class InGameMenu extends JPanel
private JTextArea chatBox;
private JPanel buttonPanel;
private TextField chatTextField;
private JList playersList;
private DefaultListModel listModel;
private ConnectionToServer conn;
private JFrame mainFrame;
public InGameMenu (ConnectionToServer conn, JFrame mainFrame)
{
this.setBackground(Color.CYAN);
this.conn = conn;
this.mainFrame = mainFrame;
mainFrame.setTitle("Game menu");
super.setLayout(new GridBagLayout());
chatBox = new JTextArea("This is player's chat.\n");
GridBagConstraints gbc = new GridBagConstraints();
// chat box
gbc.gridheight = 10;
gbc.gridwidth = 10;
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 0;
gbc.gridy = 0;
this.add(chatBox, gbc);
// chat text field
chatTextField = new TextField("dsadasda");
chatTextField.setBackground(Color.GRAY);
gbc.gridheight = 1;
gbc.gridy = 1;
this.add (chatTextField, gbc);
// lista graczy
listModel = new DefaultListModel();
playersList = new JList(listModel);
gbc.gridheight = 15;
gbc.gridwidth = 4;
gbc.gridx = 1;
gbc.gridy = 0;
this.add (playersList, gbc);
// panel przyciskow
buttonPanel = new JPanel(new FlowLayout());
gbc.gridheight = 1;
gbc.gridy = 1;
this.add (buttonPanel, gbc);
}
}
您需要更好地定义您的期望和请求。正如所写,这是一个声明,不是一个问题,所以很难以这种方式获得帮助。 – ChiefTwoPencils