1.问题
制作一个简单的小界面,只进行求一个数的平方,只考虑输入数为整数的情况,若输入的不是整数,则显示在文本区域内
输出结果显示在文本区域内
该界面拥有两个按钮,“确定”和“清空”
2.方法
采用的是布局,组件,监听器的安装,需要用户输入
代码清单1
package org.example;
public class Test {
public static void main(String[] args){
WindowNumber win=new WindowNumber();
}
}
代码清单2
package org.example;
import java.awt.*;
import javax.swing.*;
import static javax.swing.JFrame.*;
public class WindowNumber extends JFrame {
public JTextField textInput;//创建文本框
public JButton button,button1;
public JTextArea textShow;
PoliceListen listener;//监视器
public WindowNumber(){
init();//无参函数
setBounds(100,100,360,300);
setVisible(true);//
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
button=new JButton("确定");
button1=new JButton("清空");
textInput=new JTextField(10);
textShow=new JTextArea(9,30);
textShow.setEditable(false);
listener=new PoliceListen();
listener.setView(this);
textInput.addActionListener(listener);
button.addActionListener(listener);
button1.addActionListener(listener);
add(textInput);
add(button);
add(button1);
add(new JScrollPane(textShow));
}
}
代码清单3
package org.example;
import java.awt.event.*;
import java.awt.event.ActionListener;
public class PoliceListen implements ActionListener {
WindowNumber view;
public void setView(WindowNumber view){
this.view=view;//初始化
}
public void actionPerformed(ActionEvent e){
int n=0,m=0;
String str=view.textInput.getText();
if(e.getSource()==view.button1){
view.textInput.setText("");//显示输入内容
}
else{
if(!str.isEmpty()){
try{
n=Integer.parseInt(str);
m=n*n;
view.textShow.setText(""+m);
view.textInput.setText("");
}
catch(Exception ee){
view.textShow.append(str+"\n");
}
}
else{
view.textShow.setText("请输入内容");
}
}
}
}
3结语
针对制作小界面,提出组件的安装,证明此方法是有效的。本文制作用数的平方只是一个例子,可以用其他的,主要目的是为了输入后的区别。对于这个代码,需要注意文本区域大小的设计,方法的调用,一定要注意监听器的安装,如果没安装,按钮将没有用。