我试图让我的GUI显示为:
Grocery Cart [Refill]
(TextArea)
我目前正在使用BorderLayout
,我想坚持下去。如何在同一JLabel
期间获取JButton
和JPanel
下方的文字区域?这是我特定区域的代码:
如何在两个并排下方添加文本框?每当我添加它时,它就会紧挨着它们。
JPanel newPanel = new JPanel();
JLabel label = new JLabel("Grocery Cart");
label.setFont(new Font("Arial", Font.BOLD, 20));
newPanel.add(label);
contentPane.add(newPanel, BorderLayout.WEST) ;
JButton btnNewButton = new JButton("Refill");
btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
newPanel.add(btnNewButton);
答案 0 :(得分:1)
如果我的理解是正确的,那么您需要做什么:
JPanel mainPanel = new JPanel(new BorderLayout());
JPanel eastPanel = new JPanel(new BorderLayout());
JTextArea area = new JTextArea("Test content");
JLabel label = new JLabel("Grocery Cart");
label.setFont(new Font("Arial", Font.BOLD, 20));
mainPanel.add(label, BorderLayout.WEST);
JButton btnNewButton = new JButton("Refill");
btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
eastPanel.add(btnNewButton, BorderLayout.WEST);
eastPanel.add(area, BorderLayout.CENTER);
mainPanel.add(eastPanel, BorderLayout.CENTER);
contentPane.add(mainPanel, BorderLayout.NORTH);
主要思想是,为了构建具有简单布局类型(如边框和流)的复杂布局,您必须使用容器层次结构,并通过流和边框布局的组合获得创意。
在我的示例中,标签和按钮不可调整大小,并且其宽度始终等于其首选宽度。然而,文本区域可以调整大小并占用其容器的剩余宽度。
请注意,添加到mainPanel的所有组件都可以垂直调整大小。为了使mainPanel保持其首选高度,您可以将它放在contentPane的BorderLayout.NORTH或SOUTH上。