发布网友 发布时间:2024-05-09 12:19
共2个回答
热心网友 时间:2024-07-21 14:27
import java.awt.Rectangle;
import java.math.BigDecimal;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Test {
private static JTextField jf =null;//长度值
private static JTextField jf1 =null;//宽度值
public static void main(String[] args) {
JFrame frame=new JFrame("求矩形面积");
JPanel p = new JPanel(); // 建立一个面板
JLabel chang = new JLabel("长:");
chang.setBounds(new Rectangle(18, 53, 150, 38));
jf=new JTextField(20);
jf.setBounds(new Rectangle(50, 56, 150, 25));
JLabel kuan = new JLabel("宽:");
kuan.setBounds(new Rectangle(18, 107, 150, 38));
jf1=new JTextField(20);
jf1.setBounds(new Rectangle(50, 111, 150, 25));
JButton jb=new JButton("确认");
jb.setBounds(new Rectangle(18, 107*2-53, 150, 38));
jb.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if(jf.getText()!=null&&jf1!=null){
JFrame f=new JFrame("结果:");
JPanel p1 = new JPanel();
String cd=jf.getText();
String kd=jf1.getText();
p1.setLayout(null);
String str = "";
boolean flag = true;
if(cd.equals("")){
str+="长不能为空,";
flag = false;
}
if(kd.equals("")){
str+="宽不能为空,";
flag=false;
}
if(flag){
if(Double.parseDouble(cd)<=0){
str+="长度需为正数!";
flag=false;
}
if(Double.parseDouble(kd)<=0){
str+="宽度需为正数!";
flag=false;
}
if(flag){
str="矩形长:"+jf.getText()+",宽:"+jf1.getText()+",面积:"+mianji(cd,kd);
}
}else{
str=str.substring(0, str.length()-1);
}
JTextArea text=new JTextArea();
text.setBounds(new Rectangle(18, 40, 100, 40));
text.setText(str);
text.setEditable(false);
text.setLineWrap(true);
text.setWrapStyleWord(true);
p1.add(text);
f.add(p1);
f.setSize(200,200);
f.setLocationRelativeTo(null);
f.setVisible(true);
f.setAlwaysOnTop(true);
}
}
});
p.add(chang,null);
p.add(jf);
p.add(kuan,null);
p.add(jf1);
p.setLayout(null);
p.add(jb);
frame.add(p);//将面板添加到窗口
frame.setSize(300,300);//设置窗口大小
frame.setAlwaysOnTop(true);//设置窗口始终在最上层
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认的关闭操作,关闭窗口后退出程序
frame.setLocationRelativeTo(null);//设置窗口居中
frame.setVisible(true);//设置窗口可见,尽快调用paint()方法
frame.setResizable(false);
}
/**计算面积的算法,为了使计算精确采用BigDecimal*/
public static double mianji(String cd,String kd) {
BigDecimal bdcd=new BigDecimal(cd);
BigDecimal bdkd=new BigDecimal(kd);
return bdcd.multiply(bdkd).doubleValue();
}
}
运行了下效果如图:
热心网友 时间:2024-07-21 14:27
好久不写swing程序了,这个一点也不常用。我给您说一下大致思路。首先JFrame frame = new JFrame(String title);然后设置大小,定位。new 两个文本输入框(什么名字忘记了,JTextEdit什么的)和JLable标签,使用布局管理器进行布局。然后new JButton()。加上事件,获得前面两个输入框中的值并计算,然后弹出,弹出的方法是:JOptionPanel.showMessageDia......忘记了,你自己百度一下吧,几行代码的事。