SwingJava中的简单窗口
任务:使用JAVA swing创建与以下屏幕截图相同的窗口: 我做了什么:SwingJava中的简单窗口,java,swing,user-interface,layout-manager,Java,Swing,User Interface,Layout Manager,任务:使用JAVA swing创建与以下屏幕截图相同的窗口: 我做了什么: 为顶部块(BorderLayout)创建了一个面板,向其中添加了两个面板(GridLayour),一个用于左按钮(FR、FG、FB),另一个用于右按钮(a、B、C),并将其全部添加到我的JFrame窗口 创建了一个JScrollPane并将其添加到JFrame中 为底部块(BorderLayout)创建了一个面板,向其中添加了两个面板(GridLayour),一个用于左侧按钮(1,2,3,4…),另一个用于JText
- 为顶部块(BorderLayout)创建了一个面板,向其中添加了两个面板(GridLayour),一个用于左按钮(FR、FG、FB),另一个用于右按钮(a、B、C),并将其全部添加到我的JFrame窗口
- 创建了一个JScrollPane并将其添加到JFrame中
- 为底部块(BorderLayout)创建了一个面板,向其中添加了两个面板(GridLayour),一个用于左侧按钮(1,2,3,4…),另一个用于JTextFiel文本字段,将其全部添加到我的JFrame窗口
import javax.swing.*;
import java.awt.*;
public class MyJFrame extends JFrame {
JPanel pan1 = new JPanel();
JPanel pan2 = new JPanel();
JPanel pan3 = new JPanel();
JPanel pan4 = new JPanel();
JPanel pan5 = new JPanel();
JPanel pan6 = new JPanel();
JButton jButton1 = new JButton("FR");
JButton jButton2 = new JButton("FG");
JButton jButton3 = new JButton("FB");
JButton jButton4 = new JButton("A");
JButton jButton5 = new JButton("B");
JButton jButton6 = new JButton("C");
public MyJFrame(){
super("Simple Swing App");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(650,300);
setLayout(new GridLayout(3,2));
setResizable(true);
JScrollPane scrollPane = new JScrollPane();
jButton1.setBackground(Color.red);
jButton2.setBackground(Color.green);
jButton3.setBackground(Color.blue);
pan1.setLayout(new GridLayout(1,3,2,2));
pan2.setLayout(new GridLayout(1,3,2,2));
pan3.setLayout(new BorderLayout());
pan4.setLayout(new GridLayout(3,3,2,2));
pan5.setLayout(new GridLayout(3,1,1,1));
pan6.setLayout(new BorderLayout());
pan1.add(jButton1);
pan1.add(jButton2);
pan1.add(jButton3);
pan2.add(jButton4);
pan2.add(jButton5);
pan2.add(jButton6);
pan3.add(pan1, BorderLayout.WEST);
pan3.add(pan2, BorderLayout.EAST);
for (int i=1; i<10; i++) {
JButton jButton = new JButton(i+"");
pan4.add(jButton);
}
for (int i=1; i<4; i++){
JTextField jTextField = new JTextField(" Pole tekstowe " + i + " typu jTextField ");
jTextField.setBackground(Color.WHITE);
jTextField.setBorder(BorderFactory.createLineBorder(Color.CYAN));
pan5.add(jTextField);
}
pan6.add(pan4, BorderLayout.WEST);
pan6.add(pan5, BorderLayout.EAST);
add(pan3);
add(scrollPane);
add(pan6);
setSize(700,450);
setVisible(true);
}
}
import javax.swing.*;
导入java.awt.*;
公共类MyJFrame扩展了JFrame{
JPanel pan1=新的JPanel();
JPanel pan2=新的JPanel();
JPanel pan3=新的JPanel();
JPanel pan4=新的JPanel();
JPanel pan5=新的JPanel();
JPanel pan6=新的JPanel();
JButton jButton1=新的JButton(“FR”);
JButton jButton2=新的JButton(“FG”);
JButton jButton3=新的JButton(“FB”);
JButton jButton4=新的JButton(“A”);
JButton jButton5=新的JButton(“B”);
JButton jButton6=新的JButton(“C”);
公共MyJFrame(){
超级(“简单Swing应用程序”);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
设置位置(650300);
setLayout(新网格布局(3,2));
可设置大小(真);
JScrollPane scrollPane=新的JScrollPane();
jButton1.收进背景(颜色:红色);
jButton2.收进背景(颜色:绿色);
jButton3.收进背景(颜色:蓝色);
pan1.setLayout(新的GridLayout(1,3,2,2));
pan2.setLayout(新的GridLayout(1,3,2,2));
pan3.setLayout(新的BorderLayout());
pan4.setLayout(新的GridLayout(3,3,2,2));
pan5.setLayout(新的GridLayout(3,1,1,1));
pan6.setLayout(新的BorderLayout());
pan1.add(jButton1);
pan1.add(jButton2);
pan1.add(jButton3);
pan2.add(jButton4);
pan2.add(jButton5);
pan2.add(jButton6);
pan3.添加(pan1,BorderLayout.WEST);
pan3.添加(pan2,BorderLayout.EAST);
对于(int i=1;i如果问题是“如何制作此GUI?”我将使用以下方法:
- 3 x
BorderLayout
(红色)-一个用于整个GUI,一个用于主GUI面板的页面开始
和页面结束
约束
- 在
页面_START
中使用的面板中,2 x流程布局
(绿色),一个在行_START
,另一个在行_END
(1)
- 在
页面的面板中_END
,2 x网格布局
(蓝色),第一个是3 x 3,另一个是单列
如果顶部的组件(左侧和右侧的按钮组)需要完全相同的大小,也可以使用网格布局
我想我能猜出这个问题,但因为我不喜欢猜,问题是什么?(1+)在使用具有不同布局管理器的嵌套面板时,您有正确的方法。您只需一步一步解决问题。不要将网格布局用作主布局。这会使每个面板的高度相同。保留框架的默认BorderLayout
。然后将子面板添加到页面开始处,中心
和PAGE\u END
。请参阅:。一旦顶层布局符合您的要求,请转到子面板。这将成为一个迭代过程。@camickr“一旦顶层布局符合您的要求,请转到子面板”嗯..我实际上是走另一条路。从GUI的最小部分开始,将其表示为单个面板/布局是有意义的,然后我向外工作,将它们定位在具有不同布局的较大面板中。剥这只猫的皮的方法不止一种!@AndrewThompson我实际上走了另一条路。-每个人都有自己的。关键是to认识到您可以使用带有不同布局管理器的嵌套面板,而OP似乎正在这样做。谢谢您的帮助,您帮了我很多。只剩下一个问题:当窗口调整大小时,右下角的文本字段不会更改其大小。是否可以确保文本字段也会更改其大小?“你帮了我很多。”不客气。如果这有助于解决问题,请回答。只剩下一个问题:“开始一个新的问题线索。每个问题线索都应该有一个明确、具体的问题。”是否可以确保文本字段也会改变其大小?“提问时的提示。以最小尺寸提供ASCII艺术或GUI预期布局的简单绘图,如果可以调整大小,则提供更大的宽度和高度,以显示应如何使用额外空间。