java - swing JAVA中的简单窗口
问题描述
任务:使用 JAVA swing 制作与以下屏幕截图相同的窗口:
我做了什么:
- 为顶部块(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);
}
}
解决方案
推荐阅读
- python - 如何使用这个标记器来标记一串代码?
- sql - SQL 查询以查找特定月份中的最后一个事件
- bash - 在 shell 脚本中执行 sql loader 后如何捕获被拒绝的记录数?
- mongodb - 如何过滤 MongoDB 中计数大于一的数据?
- angular - Angular - 获取 API 结果但无法转换为 JSON
- python - 障碍物检测的分离轴定理
- database - 存储图像的最佳方法
- swift - HealthKit 会不断更新模拟器上的样本数据,但不会更新 Apple Watch 上的实际数据
- python - 解析请求后调用中的 ssl 证书数据时无法解密错误
- java - Junit:org.junit.ComparisonFailure 问题,在 mvn clean install 时添加了额外的 $jacocoData +XXXX