所以我开始自己的小项目是因为我要构建一个主要使用JPanel组件的简单文本编辑器。现在我已经设置了这样的尺寸:
tfMain.setPreferredSize(new Dimension(550,650));
它有效,但它不能很好地扩展。如果我调整JFrame的大小,我的所有组件都会被移动,试图适应。而且我的tfMain保持不变,因为我将它设置为550x650。所以,要清楚;当你启动程序时,我的tfMain应该是550x650。如果我让窗口变小,它应该变小,如果我把窗口变大,它应该变得更大。
对于按钮移动的问题,我认为与我的布局有关。现在我正在使用BorderLayout,但我认为Box或Grid可能更好。
编辑: 在GridLayout的帮助下,我似乎解决了组件飞来飞去的问题。但它确实增加了一些填充,所以我不确定是什么。 到目前为止,这是我的代码:
public class Viewer extends JPanel {
private Controller controller;
private JPanel jpEverything = new JPanel();
private JTextArea taMain = new JTextArea();
public Viewer(Controller controller, ButtonPanel buttonPanel){
this.controller = controller;
jpEverything.setLayout(new BoxLayout(jpEverything,BoxLayout.Y_AXIS));
setPreferredSize(new Dimension(500,600));
taMain.setPreferredSize(new Dimension(400,500));
jpEverything.add(buttonPanel);
jpEverything.add(taMain);
add(jpEverything);
}
}