Java swing 创建简单求和工具-作业题-框架构建
作业的题目是这样子的
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8dbb663dcc1ab357e56501d56e2e2949.jpeg)
一开始看到这个东西的时候我的想法就是用swing中的gridlayout来完成,但是中途我发现书上写着可以使用嵌套的方式来做一些特殊的布局,这个时候我又看到在这个简陋的界面的右边是大片的空白,加之当时半夜可能脑子不清楚,于是想用串流布局加上grid布局完成。
但是今天写着写着发现直接用两个空白的label就可以完成右边的空白界面,也是给之前的自己蠢到了。总之新学java感觉还是比之前学习的c++有很多的不同的,之前一直using namespace导致java总是有点小问题,这种需要自己new的语言可能还是要好好的思考怎么完成一个工作再下手比较好。
下面是完成的代码,间隔我没弄,应该是改成gridlayout(int,int,int,int)形式就可以了,不过好丑不想弄。
// 简单求和布局作业
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
@SuppressWarnings("serial")
public class Tst04 extends JFrame{
public Tst04(){
setLayout(new GridLayout());
GridLayout a=new GridLayout(3,3);
setLayout(a);//利用grid的布局构建,虽然不能准确控制区域大小但也够用了
JTextField t2=new JTextField();
JTextField t5=new JTextField();
JButton t7=new JButton("求和");
JTextField t8=new JTextField();
JButton t9=new JButton();
JLabel jj=new JLabel("清除");
//这样子就可以控制选项中字体的位置,不过感觉很蠢
//利用这样的嵌套似乎可以用grid(0,3)完成程序
t9.add(jj, BorderLayout.NORTH);
add(new JLabel("加数1:"));
add(t2);
add(new JLabel(""));
add(new JLabel("加数2:"));
add(t5);
add(new JLabel(""));
add(t7);
add(t8);
add(t9);
t7.setAlignmentX(FlowLayout.LEFT);
//布局构建完成
//开始写入监视器函数
t7.addActionListener(new ActionListener(){ //加一个监听器
public void actionPerformed(ActionEvent e) { //实现功能的方法
double result = Double.parseDouble(t2.getText()) + Double.parseDouble(t5.getText());
t8.setText(result+"");
}
});
t9.addActionListener(new ActionListener(){ //加一个监听器
public void actionPerformed(ActionEvent e) { //实现功能的方法
t2.setText("");
t5.setText("");
t8.setText("");
}
});
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}