java swing 编写一个界面, A:———————— B :———————— L:—————— 值:——————

ABL为用户输入算法:值=A*B*L+B要有注释... ABL为用户输入
算法:值=A*B*L+B
要有注释
展开
 我来答
紫薇参星
科技发烧友

2016-09-18 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3645万
展开全部

按照你的要求编写的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();//调用构造函数运行程序
 }
}

运行结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式