是否可以使用JPanel的大小來設置JPanel內的組件的大小?當我嘗試在JPanel上使用getHeight()或getWidth()時,它總是返回0.我知道一旦JFrame被打包就會得到它的大小,但是如何使用JPanel的維度並將其應用於它裏面的組件?像這樣的東西java使用JPanel的大小來設置組件的大小
JPanel panel = new JPanel();
JLabel label = new JLabel();
label.setWidth(panel.getWidth());
panel.add(label);
編輯: 請參閱下面的示例代碼。如果我想讓我的Jlabel和我的JPanel一樣寬,我應該怎麼做?在這種情況下使用boxlayout是錯誤的嗎?
public class Main extends JFrame{
public Main(){
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
panel.setBorder(BorderFactory.createLineBorder(Color.blue));
JLabel label = new JLabel();
label.setBorder(BorderFactory.createLineBorder(Color.red));
label.setText("label1");
label.setMinimumSize(panel.getPreferredSize());
label.setPreferredSize(panel.getPreferredSize());
panel.add(label);
add(panel);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setSize(500,500);
setVisible(true);
}
public static void main(String[] args)
{
new Main();
}
}
嘗試'panel.getPreferredSize().width' – oliholz
@oliholz,正如你在我上面的例子中看到的那樣,我嘗試過但是沒有奏效。當我打印出面板的首選尺寸時,它的寬度和高度都是2。但是,當Jframe出現時,面板邊框與整個jframe的大小几乎相同 – jhlu87