(源码在上传的压缩包“【java学习记录】1-10的代码”中可看到,该压缩包可下载)
public class Triangle_Perimeter implements ActionListener{
//设置的全局变量
static TextField jtf1=new TextField("0.0");
static TextField jtf2=new TextField("0.0");
static TextField jtf3=new TextField("0.0");
static TextField jtf4=new TextField("0.0");
Button jb1=new Button("计算周长");
Button jb2=new Button("重新计算");
double i1=0;
double i2=0;
double i3=0;
String i4=null;
/***************************************************************************************************************/
public Triangle_Perimeter(){
JFrame f=new JFrame("计算三角形周长");//框体标题
f.setSize(400, 400);//设置框大小
f.setLocationRelativeTo(null);
/*
* setLocationRelativeTo(Component c)设置窗口相对于指定组件的位置。
* 如果组件当前未显示,或者 c 为 null,则此窗口将置于屏幕的中央。中点可以使用 GraphicsEnvironment.getCenterPoint 确定。
* 如果该组件的底部在屏幕外,则将该窗口放置在 Component 最接近窗口中心的一侧。因此,如果 Component 在屏幕的右部,则 Window 将被放置在左部,反之亦然。
* 参数:
* c - 确定窗口位置涉及的组件
*/
f.setResizable(false);//设置窗体是否可以调整大小,参数为布尔值
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用户单击窗口的关闭按钮时程序执行的操作,此处为结束程序
/*
* setDefaultCloseOperation(int operation):设置用户在此窗体上发起 "close" 时默认执行的操作。方法中的参数解释如下:
* 1.为“0”或DO_NOTHING_ON_CLOSE:
* (在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的WindowListener 对象的 windowClosing 方法中处理该操作。
* 比如实例程序代码中更改为f.setDefaultCloseOperation(f. DO_NOTHING_ON_CLOSE);或者f.setDefaultCloseOperation(0),然后查看效果,可以发现窗口无法关闭,下面是相同测试方法,不再解释了。
* 2.为“1”或HIDE_ON_CLOSE
* 调用任意已注册的 WindowListener 对象后自动隐藏该窗体。此时没有关闭程序,只是将程序界面隐藏了。可以打开任务管理器,可以看到一个叫“java.exe”的进程(如果调试运行了多个java程序,则会看到多个“java.exe”的进程),如果此时用EditPlus测试程序,会发现当单击窗口的关闭按钮关闭窗口后,却无法再次对程序进行调试,因为程序线程没有关闭,在任务管理器中关闭java.exe(如果有多个“java.exe”的进程,则先都关闭掉,再来测试该问题)基础后,EditPlus才可以重新编译改程序。
* 3.为“2”或DISPOSE_ON_CLOSE
* 调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。但继续运行应用程序,释放了窗体中占用的资源。
* 4.为“3”EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。结束了应用程序。
* 默认情况下,该值被设置为 HIDE_ON_CLOSE。
*/
f.setVisible(true);//框可见
/***************************************************************************************************************/
//添加面板
JPanel jp=new JPanel();
jp.setBackground(Color.white);
jp.setLayout(null);//取消布局管理器
f.add(jp);
/***************************************************************************************************************/
//添加标签
Label jL_1=new Label("第一条边长:");
Label jL_2=new Label("第二条边长:");
Label jL_3=new Label("第三条边长:");
Label jL_4=new Label("三角形周长为:");
jL_1.setBounds(10, 10, 100, 20);
jL_2.setBounds(10, 50, 100, 20);
jL_3.setBounds(10, 90, 100, 20);
jL_4.setBounds(10, 130, 100, 20);
//jL_1.setBackground(Color.gray);
//jL_2.setBackground(Color.gray);
//jL_3.setBackground(Color.gray);
jp.add(jL_1);
jp.add(jL_2);
jp.add(jL_3);
jp.add(jL_4);
/***************************************************************************************************************/
//添加编辑框
jtf1.setBounds(110, 10, 200, 20);
jtf2.setBounds(110, 50, 200, 20);
jtf3.setBounds(110, 90, 200, 20);
jtf4.setBounds(110, 130, 200, 20);
jtf4.setEditable(false);//设置成不可编辑
//将编辑框添加到面板上
jp.add(jtf1);
jp.add(jtf2);
jp.add(jtf3);
jp.add(jtf4);
/***************************************************************************************************************/
//添加按钮
jb1.setBounds(100, 200, 60, 30);
jb2.setBounds(200, 200, 60, 30);
//
jb.setBackground(Color.cyan);
//设置监听器
jb1.addActionListener(this);
jb2.addActionListener(this);
//将按钮添加到面板上
jp.add(jb1);
jp.add(jb2);
}
/***************************************************************************************************************/
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//判断点击的按钮,出现显示命令的界面
if(e.getSource()==jb1){//”计算周长“按钮
//获取编辑框内容
//用getText的方法,拿到文本框中的值,拿到的东西是String类型的,要进行类型转换
//Integer.parseInt()转化成int型
//Double.parseDouble()转化成double型
//String.valueOf()转化为string型
i1=Double.parseDouble(jtf1.getText());
i2=Double.parseDouble(jtf2.getText());
i3=Double.parseDouble(jtf3.getText());
i4=String.valueOf(i1+i2+i3);//计算周长
jtf4.setText(i4);//输出三角形周长
System.out.println(i1+","+i2+","+i3+","+i4+";"+jtf1.getText());
/***************************************************************************************************************/
}else if(e.getSource()==jb2){//“重新计算”按钮
jtf1.setText("0.0");
jtf2.setText("0.0");
jtf3.setText("0.0");
jtf4.setText("0.0");
}
}
/***************************************************************************************************************/
public static void main(String[] args) {
new Triangle_Perimeter();
}
}