简单 window 摇摆 JAVA
Simple window in swing JAVA
任务:使用 JAVA swing:
制作与下面截图中相同的 window
我做了什么:
- 为顶部块 (BorderLayout) 创建了一个面板,向其添加了另外两个面板 (GridLayour),一个用于左侧按钮(FR、FG、FB),另一个用于右侧按钮(A、B、 C), 将其全部添加到我的 JFrame window
- 创建了一个 JScrollPane 并将其也添加到 JFrame
- 为底部块 (BorderLayout) 创建了一个面板,为其添加了另外两个面板 (GridLayour),一个用于左侧按钮 (1,2,3,4...),另一个用于 JTextFiel 文本字段,将其全部添加到我的 JFrame window.
结果如下:
我试过使用其他布局,但还是不行。我附上代码。
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);
}
}
如果问题是“如何制作这个 GUI?” 我会使用这种方法:
- 3 x
BorderLayout
(red) - 一个用于整个 GUI,一个用于 PAGE_START
和 PAGE_END
约束主 GUI 面板。
- 在
PAGE_START
中使用的面板,2 x FlowLayout
(绿色),一个在LINE_START
,另一个在LINE_END
。 (1)
- 在面板中
PAGE_END
, 2 x GridLayout
(blue),第一个是 3 x 3,另一个是单列。
- 如果顶部的组件(左侧和右侧的按钮组)需要完全相同的大小,也可以为它们使用网格布局。
任务:使用 JAVA swing:
制作与下面截图中相同的 window我做了什么:
- 为顶部块 (BorderLayout) 创建了一个面板,向其添加了另外两个面板 (GridLayour),一个用于左侧按钮(FR、FG、FB),另一个用于右侧按钮(A、B、 C), 将其全部添加到我的 JFrame window
- 创建了一个 JScrollPane 并将其也添加到 JFrame
- 为底部块 (BorderLayout) 创建了一个面板,为其添加了另外两个面板 (GridLayour),一个用于左侧按钮 (1,2,3,4...),另一个用于 JTextFiel 文本字段,将其全部添加到我的 JFrame window.
结果如下:
我试过使用其他布局,但还是不行。我附上代码。
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);
}
}
如果问题是“如何制作这个 GUI?” 我会使用这种方法:
- 3 x
BorderLayout
(red) - 一个用于整个 GUI,一个用于PAGE_START
和PAGE_END
约束主 GUI 面板。 - 在
PAGE_START
中使用的面板,2 xFlowLayout
(绿色),一个在LINE_START
,另一个在LINE_END
。 (1) - 在面板中
PAGE_END
, 2 xGridLayout
(blue),第一个是 3 x 3,另一个是单列。
- 如果顶部的组件(左侧和右侧的按钮组)需要完全相同的大小,也可以为它们使用网格布局。