我對擴展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