Java 新建一个简单的窗体(仅添加一个文本框)

本文深入探讨了Java Swing中的六种布局管理器:FlowLayout、BorderLayout、CardLayout、GridLayout、BoxLayout和null布局,详细讲解了每种布局的特点、构造方法及如何在Swing应用程序中应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static void main (String[] args) {
    //新建一个JFrame窗体
    JFrame jf = new JFrame();
    //设置窗体的宽为400 高为300
    jf.setSize(400, 300);
    //直接设置窗口开启后再屏幕上显示的位置
    //jf.setLocation(200,200);
    //设置窗口居中
    //setLocationRelativeTo: 设置窗口相对坐标
    jf.setLocationRelativeTo(null);
    //设置布局(下面一章有解释)
    jf.setLayout(null);
    //设置文本内容
    JLabel jl = new JLabel("文字");
    //文字颜色
    jl.setForeground(Color.GRAY);
    jl.setBounds(50,50,280,30);
    jf.add(jl);
    //点叉之后结束进程
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //显示窗口
    jf.setVisible(true);
}

setLayout(布局对象)

声明布局格式的方式   如:
setLayout(new FlowLayout());

1. FlowLayout布局 
FlowLayout布局是JPanel 的默认布局,组建按照加入的先后顺序从左到右排列,一行排满之后就转到下一行继续从左到右排列 ,每一行都居中排列,水平和垂直的间距都是5个像素,组件设置大小用  set.PreferredSize(Dimension preferredSize)  

例如:

button.setPreferredSize(new Dimension(20,20));

重新设置布局方式: setAlignment(int aligin);   aligin 的取值为 FlowLayout.LEFT,FlowLayout.RIGHT,FlowLayout.CENTER   ;  重新设置水平和垂直的间隙  setHgap(int hgap); setVgap(int vgap);
2.BorderLayout布局
Window型容器的默认布局(JFrame,JDialog)   容器空间简单的划分为东南西北中5个区域,中间的区域最大 ,由BorderLayout 中的静态变量WEST,EAST,SOUTH,NORTH,CENTER表示区域 .有BorderLayout布局的容器con  例:


con.add(b,BorderLayout.EAST);

添加到某一个区域的组件占有整个区域,再添加进来,旧的就会被替换掉 ,只能添加5个组件,5个以上的话使用其他的布局或者容器嵌套.
3.CardLayout布局
组件被层叠的放入容器,最先加入的在最上面,同一时刻容器只能从这些组件中选一个来显示,容器调用add(String s,Component b);的方式将组件b加入容器  s为代号和组件没有必然关系,不同的组件代号不能相同  

调用show(Component con,s)的方法显示代号为s的容器  card.show(con,s);    card.first(con) card.next(con),card.last(con) ,card.previous(con)  分别显示容器con的第一个,下一个,最后一个,上一个 组件

4.GirdLayout布局
把容器分成若干行和若干列的网格区域    构造方法  GirdLayout(int m,int n); 创建布局对象,指定行和列


GridLayout gy =new GridLayout(10,12);

可以添加m*n个组件   用add(Component c)将组件添加进入   ,从第一行第一个开始到最后一行最后一个  (每个网格强制相等)
5.BoxLayout  盒式布局
Box  创建的容器是盒式容器 默认布局是盒式布局并且不允许修改

盒式布局构造方法 BoxLayout(Container con,int axis);axis 的有效值  BoxLayout.X_AXIS, BoxLayout.Y_AXIS.决定盒式布局是行型还是列型    行(列)型组件再多也不会延伸到下一行 (列) ,沿着同一水平线或垂直线

Box 类调用静态方法 createHorizontalBox()   获得一个行型的盒式布局的盒式容器  

Box类 调用静态方法 createVerticalBox()  获得一个列型的盒式布局的盒式容器

Box 调用静态方法 createVerticalStrut(int height)    createHorizontalBox(int width)   得到不可见的Strut对象 设置水平(垂直)的Box之间的间距

6.null 布局  
空布局可以准确的定位组件在容器中的位置和大小 setBounds(int a,int b,int width,int height)  设置位置和本身大小 , a,b 是组件在容器p中的坐标     

要在Java中使用Eclipse创建一个包含加减乘除功能的简单计算器窗口程序,你需要遵循以下步骤: 1. **新建项目**: - 打开Eclipse,点击菜单栏的`File` -> `New` -> `Java Project` 创建一个新的Java项目。 2. **添加GUI组件**: - 右键点击项目名,选择 `New` -> `Other` -> `Swing User Interface`。在弹出的窗口中选择 `JFrame`, 然后点击 `Next` 和 `Finish` 来生成一个新的Java Swing框架界面。 3. **设计界面**: - 在打开的`CalculatorWindow.java`文件中,你会看到一个基本的窗口结构。使用鼠标和拖放功能添加`JTextField`(文本框)用于显示数字,以及`JButton`(按钮)用于执行操作。例如,你可以添加四个按钮分别代表“+”、“-”、“*”和“/”。 ```java import javax.swing.*; import java.awt.*; public class CalculatorWindow extends JFrame { private JTextField textField; private JButton addButton, subtractButton, multiplyButton, divideButton; public CalculatorWindow() { // 设置窗口标题和大小 setTitle("Simple Calculator"); setSize(300, 200); // 添加文本框和按钮 textField = new JTextField(); add(textField, BorderLayout.NORTH); addButton = new JButton("+"); subtractButton = new JButton("-"); multiplyButton = new JButton("*"); divideButton = new JButton("/"); JPanel buttonPanel = new JPanel(new GridLayout(4, 2)); buttonPanel.add(addButton); buttonPanel.add(subtractButton); buttonPanel.add(multiplyButton); buttonPanel.add(divideButton); add(buttonPanel, BorderLayout.CENTER); // 设置按钮监听器 addButton.addActionListener(e -> performOperation("+", textField.getText())); subtractButton.addActionListener(e -> performOperation("-", textField.getText())); multiplyButton.addActionListener(e -> performOperation("*", textField.getText())); divideButton.addActionListener(e -> performOperation("/", textField.getText())); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private void performOperation(String operation, String num) { try { int result = Integer.parseInt(num) switch (operation) { case "+": return Integer.parseInt(num) + Integer.parseInt(textField.getText()); case "-": return Integer.parseInt(num) - Integer.parseInt(textField.getText()); case "*": return Integer.parseInt(num) * Integer.parseInt(textField.getText()); case "/": if (Integer.parseInt(textField.getText()) != 0) { return Integer.parseInt(num) / Integer.parseInt(textField.getText()); } else { JOptionPane.showMessageDialog(this, "Cannot divide by zero!"); return; } }; textField.setText(Integer.toString(result)); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Invalid input! Please enter a number."); } } public static void main(String[] args) { EventQueue.invokeLater(() -> { try { CalculatorWindow window = new CalculatorWindow(); window.setVisible(true); } catch (Exception e) { e.printStackTrace(); } }); } } ``` 4. **运行程序**: - 按F6或点击工具栏上的绿色三角形运行按钮,计算器窗口就会出现。 现在你已经创建了一个简单Java Swing计算器窗口,用户可以在文本框中输入数字,然后按下对应的运算按钮进行计算。如果输入的是非数字或者试图除以零,会有错误提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值