java swing 编写一个界面, A:———————— B :———————— L:—————— 值:——————
展开全部
按照你的要求编写的java swing界面的程序如下(注意 当光标离开L的横线时,检查ABL是否输入,并计算A*B*L+B的值)
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.MatteBorder;
public class DDD extends JFrame implements FocusListener{
JLabel jla=new JLabel("A:");//定义A B L 值 的标签
JLabel jlb=new JLabel("B:");
JLabel jll=new JLabel("L:");
JLabel jlv=new JLabel("值:");
JTextField jtfa=new JTextField(5);//定义A B L 值 的文本输入框
JTextField jtfb=new JTextField(5);
JTextField jtfl=new JTextField(5);
JTextField jtfv=new JTextField(5);
JPanel jp=new JPanel();//定义一个JPanel存放界面的控件
DDD(){
setTitle("ABL计算");//设置标题
jtfv.setEditable(false);//设置值的文本框不可编辑
jtfa.setBackground(getBackground());//把JFrame的背景色设为ABL值文本框的背景色
MatteBorder border = new MatteBorder(0, 0, 1, 0,Color.BLACK);//创建花色边框为一条黑线
jtfa.setBorder(border);//设置ABL值的文本框边框为一条黑线
jtfb.setBackground(getBackground());
jtfb.setBorder(border);
jtfl.setBackground(getBackground());
jtfl.setBorder(border);
jtfv.setBackground(getBackground());
jtfv.setBorder(border);
jtfl.addFocusListener(this);//为jtfl添加光标监听器
jp.add(jla);jp.add(jtfa);jp.add(jlb);jp.add(jtfb);//把ABL值的标签和文本框加入到JPanel中
jp.add(jll);jp.add(jtfl);jp.add(jlv);jp.add(jtfv);
add(jp,BorderLayout.CENTER);//把JPanel加入到JFrame中央
setSize(250,200);//设置JFrame的大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置JFrame关闭窗口
setLocationRelativeTo(null);//让JFrame显示到屏幕中央
setVisible(true);//让JFrame显示出来
}
@Override
public void focusGained(FocusEvent arg0){}
@Override
public void focusLost(FocusEvent fe) {//监听jtfl失去光标时检查ABL文本框是否为空并计算ABL+B的值
if(fe.getSource()==jtfl){
if(jtfa.getText()==null || jtfa.getText().equals("")){//检查ABL文本框是否为空
JOptionPane.showMessageDialog(this, "请输入A!");
jtfa.requestFocus();
return;
}
if(jtfb.getText()==null || jtfb.getText().equals("")){
JOptionPane.showMessageDialog(this, "请输入B!");
jtfb.requestFocus();
return;
}
if(jtfl.getText()==null || jtfl.getText().equals("")){
JOptionPane.showMessageDialog(this, "请输入L!");
jtfl.requestFocus();
return;
}
double a=Double.parseDouble(jtfa.getText().trim());//把ABL转换成双精度值
double b=Double.parseDouble(jtfb.getText().trim());
double l=Double.parseDouble(jtfl.getText().trim());
double v=a*b*l+b; //计算ABL+B的值
jtfv.setText(String.format("%.2f",v));//输出ABL+B的值,并保留两位小数
}
}
public static void main(String[] args) {
new DDD();//调用构造函数运行程序
}
}
运行结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询