Java ATW和Swing开发全面指南

本文介绍了Java中的ATW和Swing两个重要开发框架,用于创建美观的GUI界面。ATW提供基础的GUI组件,而Swing则提供更丰富的组件库。通过示例展示了如何使用这两个框架创建窗口和复选框,以及如何组合使用ATW和Swing构建一个简单的计算器应用。
摘要由CSDN通过智能技术生成

Java是一种具有广泛应用的计算机编程语言,它有着广泛的跨平台能力,深受程序员喜爱。ATW和Swing是Java中两个重要的开发框架,可以使Java的界面设计更加优美、易用,同时提高开发效率。

本指南将为大家详细介绍Java ATW和Swing开发,带你领略不一样的Java编程之美。

一、ATW开发框架

ATW是Java ATW(Abstract Window Toolkit)的缩写,是Java基础类库中的一个重要模块,它提供了许多GUI(图形用户界面)组件,包括按钮、文本框、下拉列表等,可以帮助Java开发人员轻松制作复杂的GUI界面。

示例:窗口制作

下面我们来制作一个简单的窗口程序,代码如下:
 

import java.awt.*;
public class MyWindow extends Frame{
public MyWindow(){
setTitle("我的窗口!");
setSize(400,200);
setLocation(500,300);
setVisible(true);
}

public static void main(String args[]){
new MyWindow();
}
}


上述代码创建了Frame类的子类MyWindow,在MyWindow的构造函数中设置了窗口的标题、大小和位置,并使用setVisible方法将其显示在屏幕上。

运行该程序后会看到一个简单的窗口界面,证明ATW框架可以帮助我们轻松开发各种窗口应用程序。

二、Swing开发框架

Swing是Java编程中的又一个重要开发框架,它的主要作用是提供一组丰富的组件,用以构建GUI界面,在和AWT一起使用时,可以实现更加复杂和美观的图形界面。

示例:复选框制作

下面我们以制作一个复选框为例介绍如何使用Swing框架:
 

import javax.swing.*;
public class MyCheckBox extends JFrame{
JCheckBox cb;
MyCheckBox(){
cb = new JCheckBox("我同意",true);
cb.setBounds(100,100,100,50);
add(cb);
setSize(400,400);
setLayout(null);
setVisible(true);
}

public static void main(String[] args) {
new MyCheckBox();
}
}



上述代码中,我们通过继承JFrame类并在构造函数中添加一个JCheckBox组件来创建了一个带有单选框的窗口界面。其中JCheckBox类表示一个复选框,其构造函数中的两个参数分别表示复选框的标题和默认选中状态。

三、ATW和Swing组合使用

ATW和Swing开发框架可以组合使用,以实现更加丰富和优美的GUI界面,下面我们以一个实例来演示:

示例:ATW和Swing配合制作计算器

我们通过ATW和Swing组合来制作一个简单的计算器程序:
 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyCalculator extends JFrame implements ActionListener{
JTextField tf;
JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,bdot,bmul,bdiv,badd,bsub,beq,bclr;
double num1=0,num2=0,result=0;
char operator;

MyCalculator() {
tf=new JTextField();
tf.setBounds(30,10,390,40);
tf.setEditable(false);
add(tf);

b1=new JButton("1");
b1.setBounds(30,70,50,50);
add(b1);

b2=new JButton("2");
b2.setBounds(90,70,50,50);
add(b2);

b3=new JButton("3");
b3.setBounds(150,70,50,50);
add(b3);

b4=new JButton("4");
b4.setBounds(30,130,50,50);
add(b4);

b5=new JButton("5");
b5.setBounds(90,130,50,50);
add(b5);

b6=new JButton("6");
b6.setBounds(150,130,50,50);
add(b6);

b7=new JButton("7");
b7.setBounds(30,190,50,50);
add(b7);

b8=new JButton("8");
b8.setBounds(90,190,50,50);
add(b8);

b9=new JButton("9");
b9.setBounds(150,190,50,50);
add(b9);

b0=new JButton("0");
b0.setBounds(90,250,50,50);
add(b0);

bdot=new JButton(".");
bdot.setBounds(150,250,50,50);
add(bdot);

badd=new JButton("+");
badd.setBounds(240,70,70,50);
add(badd);

bsub=new JButton("-");
bsub.setBounds(240,130,70,50);
add(bsub);

bmul=new JButton("*");
bmul.setBounds(240,190,70,50);
add(bmul);

bdiv=new JButton("/");
bdiv.setBounds(240,250,70,50);
add(bdiv);

beq=new JButton("=");
beq.setBounds(150,310,160,50);
add(beq);

bclr=new JButton("清除");
bclr.setBounds(30,310,100,50);
add(bclr);

b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b0.addActionListener(this);
bdot.addActionListener(this);
badd.addActionListener(this);
bsub.addActionListener(this);
bmul.addActionListener(this);
bdiv.addActionListener(this);
beq.addActionListener(this);
bclr.addActionListener(this);

setLayout(null);
setVisible(true);
setSize(450,450);
}

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1) tf.setText(tf.getText().concat("1"));
if(e.getSource()==b2) tf.setText(tf.getText().concat("2"));
if(e.getSource()==b3) tf.setText(tf.getText().concat("3"));
if(e.getSource()==b4) tf.setText(tf.getText().concat("4"));
if(e.getSource()==b5) tf.setText(tf.getText().concat("5"));
if(e.getSource()==b6) tf.setText(tf.getText().concat("6"));
if(e.getSource()==b7) tf.setText(tf.getText().concat("7"));
if(e.getSource()==b8) tf.setText(tf.getText().concat("8"));
if(e.getSource()==b9) tf.setText(tf.getText().concat("9"));
if(e.getSource()==b0) tf.setText(tf.getText().concat("0"));
if(e.getSource()==bdot) tf.setText(tf.getText().concat("."));
if(e.getSource()==badd)
{
num1=Double.parseDouble(tf.getText());
operator='+';
tf.setText("");
}
if(e.getSource()==bsub)
{
num1=Double.parseDouble(tf.getText());
operator='-';
tf.setText("");
}
if(e.getSource()==bmul)
{
num1=Double.parseDouble(tf.getText());
operator='*';
tf.setText("");
}
if(e.getSource()==bdiv)
{
num1=Double.parseDouble(tf.getText());
operator='/';
tf.setText("");
}
if(e.getSource()==beq)
{
num2=Double.parseDouble(tf.getText());
switch(operator)
{
case '+': result=num1+num2;
break;
case '-': result=num1-num2;
break;
case '*': result=num1*num2;
break;
case '/': result=num1/num2;
break;
}
tf.setText(""+result);
}
if(e.getSource()==bclr)
{
tf.setText("");
}
}

public static void main(String[] args) {
new MyCalculator();
}
}


上述代码中,我们创建了一个MyCalculator类,在构造函数中添加各种Swing组件,包括JTextField、JButton等,通过ATW的布局机制使它们以美观的方式排列在UI界面上。同时,我们在窗口中添加了各种监听器用于监听和处理用户操作事件,比如点击数字按钮、运算符按钮等,以及计算结果的显示。

最终,我们成功地实现了一个简单的计算器程序,证明了ATW和Swing的双重组合可以实现极为复杂和美观的GUI应用程序。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java 图形界面开发简介 .............. ................................ ................................ ..... 5 1. Swing1. Swing1. Swing 1. Swing1. Swing1. Swing1. Swing简介 ................................ ................................ ................................ ................................ ............... 5 2. Swing2. Swing2. Swing 2. Swing2. Swing2. Swing2. Swing组件 ................................ ................................ ................................ ................................ ............... 5 3. 3. 3. 布局管理器 布局管理器 ................................ ................................ ................................ ................................ ............. 8 4. 4. 4. 代码实例 代码实例 : 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 ................................ ................................ ................................ ..... 9 1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo 1.1: FlowLayo 1.1: FlowLayout (流式布局) (流式布局) (流式布局) (流式布局) ................................ ................................ ................................ ...................... 10 1. 概述 ................................ ................................ ................................ ................................ ....................... 10 2. 代码实例 ................................ ................................ ................................ ................................ .............. 11 1.2: GridLayout(网格布局) (网格布局) (网格布局) (网格布局) ................................ ................................ ................................ ..................... 13 1. 概述 ................................ ................................ ................................ ................................ ....................... 13 2. 代码演示 ................................ ................................ ................................ ................................ .............. 14 1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout(网格袋布局) (网格袋布局) (网格袋布局) (网格袋布局) ................................ ................................ ................................ ........... 17 1. 布局 : GridBagLayout ................................ ................................ ................................ ...................... 17 2. 约束 : GridBagConstraints ................................ ................................ ................................ ............. 17 3. 属性 : GridBagConstraints 的属性 ................................ ................................ ............................. 18 4. 案例 : GridBagLayout使用实例 使用实例 ................................ ................................ ................................ ... 19 1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout 1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout 1.4: BoxLayout1.4: BoxLayout(箱式布局) (箱式布局) (箱式布局) (箱式布局) ................................ ................................ ................................ ........................ 25 1. 概述 ................................ ................................ ................................ ................................ ....................... 25 2. 代码实例 ................................ ................................ ................................ ................................ .............. 27 1.5: GroupLayout(分组布局) (分组布局) (分组布局) ................................ ................................ ................................ ................. 29 1. 概述 ................................ ................................ ................................ ................................ ....................... 29 2. 代码实例 ................................ ................................ ................................ ................................ .............. 31 1.6: CardLayout(卡片布局) (卡片布局) (卡片布局) ................................ ................................ ................................ .................... 36 1. 概述 ................................ ................................ ................................ ................................ ....................... 36 2. 代码实例 ................................ ................................ ................................ ................................ .............. 37 1.7: BorderLayout(边界布局) (边界布局) (边界布局) ................................ ................................ ................................ ................ 40 1. 概述 ................................ ................................ ................................ ................................ ....................... 40 2. 代码实例 ................................ ................................ ................................ ................................ .............. 41 1.8: SpringLayout(弹性布局) (弹性布局) (弹性布局) ................................ ................................ ................................ ................ 43 1. 概述 ................................ ................................ ................................ ................................ ....................... 43 2. 代码实例 ................................ ................................ ................................ ................................ .............. 47 1.9: null(绝对布局) (绝对布局) (绝对布局) ................................ ................................ ................................ ................................ .... 52 1. 概述 ................................ ................................ ................................ ................................ ....................... 52 2. 代码实例 ................................ ................................ ................................ ................................ .............. 53 2.1: JLabel(标签) (标签) (标签) ................................ ................................ ................................ ................................ ....... 56 1. 概述 ................................ ................................ ................................ ................................ ....................... 56 2. 代码实例 ................................ ................................ ................................ ................................ .............. 61 2.2: JButton(按钮) (按钮) (按钮) ................................ ................................ ................................ ................................ ..... 64 1. 概述 ................................ ................................ ................................ ................................ ....................... 64 2. 代码实例 : 默认按钮 默认按钮 ................................ ................................ ................................ ........................ 66 3. 代码实例 : 自定义图片按钮 自定义图片按钮 自定义图片按钮 自定义图片按钮 ................................ ................................ ................................ .......... 68 2.3: JRadioButton(单选按钮) (单选按钮) (单选按钮) ................................ ................................ ................................ ................ 71 2 1. 概述 ................................ ................................ ................................ ................................ ....................... 71 2. 代码实例 ................................ ................................ ................................ ................................ .............. 73 2.4: JCheckBox(复选框) (复选框) (复选框) ................................ ................................ ................................ ......................... 75 1. 概述 ................................ ................................ ................................ ................................ ....................... 75 2. 代码实例 ................................ ................................ ................................ ................................ .............. 77 2.5: JToggleButton(开关按钮) (开关按钮) (开关按钮) ................................ ................................ ................................ .............. 80 1. 概述 ................................ ................................ ................................ ................................ ....................... 80 2. 代码实例 : 默认 的开关按钮 的开关按钮 的开关按钮 ................................ ................................ ................................ .......... 82 3. 代码实例 : 自定义图片开关 自定义图片开关 自定义图片开关 自定义图片开关 ................................ ................................ ................................ .......... 84 2.6: JTextField(文本框) (文本框) (文本框) ................................ ................................ ................................ ........................... 87 1. 概述 ................................ ................................ ................................ ................................ ....................... 87 2. 实例代码 ................................ ................................ ................................ ................................ .............. 91 2.7:PasswordField(密码框) (密码框) (密码框) ................................ ................................ ................................ ................... 93 1. 概述 ................................ ................................ ................................ ................................ ....................... 93 2. 代码实例 ................................ ................................ ................................ ................................ .............. 96 2.8: JTextArea(文本区域) (文本区域) (文本区域) (文本区域) ................................ ................................ ................................ ....................... 98 1. 概述 ................................ ................................ ................................ ................................ ....................... 98 2. 代码实例 ................................ ................................ ................................ ................................ ............ 103 2.9: JComboBox(下拉列表框) (下拉列表框) (下拉列表框) ................................ ................................ ................................ ............ 105 1. 概述 ................................ ................................ ................................ ................................ ..................... 105 2. 代码实例 ................................ ................................ ................................ ................................ ............ 107 2.10: JList(列 表框) 表框) ................................ ................................ ................................ ................................ .. 110 1. 概述 ................................ ................................ ................................ ................................ ..................... 110 2. 代码实例 ................................ ................................ ................................ ................................ ............ 113 2.11: JProgressBar(进度条) (进度条) (进度条) ................................ ................................ ................................ ................ 117 1. 概述 ................................ ................................ ................................ ................................ ..................... 117 2. 代码实例 ................................ ................................ ................................ ................................ ............ 119 2.12: JSlider(滑块) (滑块) (滑块) ................................ ................................ ................................ ................................ .. 123 1. 概述 ................................ ................................ ................................ ................................ ..................... 123 2. 代码实例 : 默认刻度值 默认刻度值 默认刻度值 ................................ ................................ ................................ .................. 126 3. 代码实例 : 自定义标签刻度值 自定义标签刻度值 自定义标签刻度值 自定义标签刻度值 ................................ ................................ ................................ .... 128 3.1: JPanel(面板) (面板) ................................ ................................ ................................ ................................ ..... 132 1. 概述 ................................ ................................ ................................ ................................ ..................... 132 2. 代码实例 ................................ ................................ ................................ ................................ ............ 133 3.2: JScrollPane(滚动面板) (滚动面板) (滚动面板) (滚动面板) ................................ ................................ ................................ ................. 135 1. 概述 ................................ ................................ ................................ ................................ ..................... 135 2. 代码实例 ................................ ................................ ................................ ................................ ............ 138 3.2: JScrollPane(滚动面板) (滚动面板) (滚动面板) (滚动面板) ................................ ................................ ................................ ................. 140 1. 概述 ................................ ................................ ................................ ................................ ..................... 140 2. 代码实例 ................................ ................................ ................................ ................................ ............ 142 3.4: JTabbedPane(选项卡面板) (选项卡面板) (选项卡面板) (选项卡面板) ................................ ................................ ................................ ......... 145 1. 概述 ................................ ................................ ................................ ................................ ..................... 145 2. 代码实例 ................................ ................................ ................................ ................................ ............ 149 3.5: JLayeredPane(层级面板) (层级面板) (层级面板) ................................ ................................ ................................ ............
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NasaYIN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值