Java 使用JPanels的可缩放维度?
因此,我开始了自己的小项目,主要是使用JPanel组件构建一个简单的文本编辑器。目前,我已将我的尺码设置为:Java 使用JPanels的可缩放维度?,java,swing,Java,Swing,因此,我开始了自己的小项目,主要是使用JPanel组件构建一个简单的文本编辑器。目前,我已将我的尺码设置为: tfMain.setPreferredSize(new Dimension(550,650)); 它可以工作,但不能很好地扩展。如果我调整JFrame的大小,我的所有组件都会四处移动,试图适应。我的tfMain保持不变,因为我已将其设置为550x650。因此,要明确的是;启动程序时,我的tfMain应为550x650。如果我把窗户变小,它会变小,如果我把窗户变大,它会变大 至于按钮移动
tfMain.setPreferredSize(new Dimension(550,650));
它可以工作,但不能很好地扩展。如果我调整JFrame的大小,我的所有组件都会四处移动,试图适应。我的tfMain保持不变,因为我已将其设置为550x650。因此,要明确的是;启动程序时,我的tfMain应为550x650。如果我把窗户变小,它会变小,如果我把窗户变大,它会变大
至于按钮移动的问题,我认为与我的布局有关。现在我正在使用BorderLayout,但我认为长方体或网格可能更好
编辑:
我似乎在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);
}
}
这就是它的样子:
“我将构建一个简单的文本编辑器,主要使用JPanel组件。”不要忘记用于。。。文本编辑器。(1) 看。(2) 使用适当的布局管理器来处理大小调整。并将代码的相关部分与大小调整下的行为的确切说明一起发布。请确保我们可以编译它。我建议您应该使用BorderLayout作为主布局。然后使用FlowLayout创建面板,并将按钮添加到面板中。然后使用
BorderLayout.PAGE\u START
约束将面板添加到框架中。然后将JTextArea添加到JScrollPane中,并使用BorderLayout.CENTER
将滚动窗格添加到框架中。然后,当框架调整大小时,文本区域将获得额外的空间。我们无法编译它。继续读下去。