Java GUI学习笔记
主要了解Java中swing方法的基础使用
GUI类
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
public class demo17 extends JFrame implements ActionListener{
Circle theCircle;
JTextField messageText;
JTextArea resultText;
JButton calBtn;
JButton closeBtn;
public demo17 (){
super("计算圆的面积和周长");
//创建容器
Container c = this.getContentPane();
c.setLayout(new FlowLayout());
JPanel centerPanel = new JPanel(new FlowLayout());
//创建组件标签、文本框、按钮
messageText = new JTextField(5);
JLabel messageLabel = new JLabel("输入圆的半径:");
calBtn = new JButton("计算");
closeBtn = new JButton("关闭窗口");
resultText = new JTextArea("计算结果:",4,20);
//添加组件到容器
centerPanel.add(messageLabel);
centerPanel.add(messageText);
centerPanel.add(calBtn);
centerPanel.add(closeBtn);
c.add(centerPanel);
c.add(resultText);
//注册事件到监听器
calBtn.addActionListener(this);
closeBtn.addActionListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(360,170);
this.setVisible(true);
}
public static void main(String args[]){
new demo17();
}
//实现ActionListener方法
public void actionPerformed(ActionEvent e){
if(e.getSource() == calBtn){
calculate();
}
if(e.getSource() == closeBtn){
shutDown();
}
}
//处理按钮计算事件的方法
private void calculate(){
String message = messageText.getText();
if(message.length() == 0)
JOptionPane.showMessageDialog(null,"请输入圆的半径!","提示",1);
else{
int radius = Integer.parseInt(message);
theCircle = new Circle(radius);
int theRadius = theCircle.getRadius();
double girth = theCircle.calRound();
double area = theCircle.calArea();
//显示
resultText.setText("计算结果如下:");
resultText.append("\n圆的半径是:"+ theRadius);
resultText.append("\n圆的周长是:"
+ new DecimalFormat("#.00").format(girth));
resultText.append("\n圆的面积是:"+
new DecimalFormat("#.00").format(area));
}
}
public void shutDown(){
System.exit(0);
}
}
方法类
public class Circle {
private int radius;
public Circle (int theRadius){
setRadius(theRadius);
}
public double calRound(){
return 2 * radius * 3.14159;
}
public double calArea(){
return 3.14159 * radius * radius;
}
public int getRadius(){
return radius;
}
public void setRadius (int radius){
this.radius = radius;
}
}
本次实验较为简单,主要是对swing方法有一个基本了解
功能实现的是一个简单的用户输入半径求周长和面积的操作
培养用户界面与业务逻辑分离的项目思维
具体运行界面:
- 将业务划分,GUI图形界面负责与用户的交互,实现信息的获取和反馈
- 具体操作单独作为类方法,实现内部处理和运算