
按照你的要求编写的java swing界面的程序如下(注意 当光标离开L的横线时,检查ABL是否输入,并计算ABL+B的值)
import javaawtBorderLayout;import javaawtColor;
import javaawteventFocusEvent;
import javaawteventFocusListener;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJOptionPane;
import javaxswingJPanel;
import javaxswingJTextField;
import javaxswingborderMatteBorder;
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计算");//设置标题
jtfvsetEditable(false);//设置值的文本框不可编辑
jtfasetBackground(getBackground());//把JFrame的背景色设为ABL值文本框的背景色
MatteBorder border = new MatteBorder(0, 0, 1, 0,ColorBLACK);//创建花色边框为一条黑线
jtfasetBorder(border);//设置ABL值的文本框边框为一条黑线
jtfbsetBackground(getBackground());
jtfbsetBorder(border);
jtflsetBackground(getBackground());
jtflsetBorder(border);
jtfvsetBackground(getBackground());
jtfvsetBorder(border);
jtfladdFocusListener(this);//为jtfl添加光标监听器
jpadd(jla);jpadd(jtfa);jpadd(jlb);jpadd(jtfb);//把ABL值的标签和文本框加入到JPanel中
jpadd(jll);jpadd(jtfl);jpadd(jlv);jpadd(jtfv);
add(jp,BorderLayoutCENTER);//把JPanel加入到JFrame中央
setSize(250,200);//设置JFrame的大小
setDefaultCloseOperation(JFrameEXIT_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(fegetSource()==jtfl){
if(jtfagetText()==null || jtfagetText()equals("")){//检查ABL文本框是否为空
JOptionPaneshowMessageDialog(this, "请输入A!");
jtfarequestFocus();
return;
}
if(jtfbgetText()==null || jtfbgetText()equals("")){
JOptionPaneshowMessageDialog(this, "请输入B!");
jtfbrequestFocus();
return;
}
if(jtflgetText()==null || jtflgetText()equals("")){
JOptionPaneshowMessageDialog(this, "请输入L!");
jtflrequestFocus();
return;
}
double a=DoubleparseDouble(jtfagetText()trim());//把ABL转换成双精度值
double b=DoubleparseDouble(jtfbgetText()trim());
double l=DoubleparseDouble(jtflgetText()trim());
double v=abl+b; //计算ABL+B的值
jtfvsetText(Stringformat("%2f",v));//输出ABL+B的值,并保留两位小数
}
}
public static void main(String[] args) {
new DDD();//调用构造函数运行程序
}
}
运行结果
给你写好了 懒得下swing控件 手写了一个 临时写的有点乱
十转二用内置函数 二转十是自己写的过程 你也可以仿照我的写法把十转二改成过程
package erjinzhi;import javaawt;
import javaawtevent;
public class erjinzhi_test extends Frame implements ActionListener{
Button tentotwo;
Button twototen;
Label l1;
Label l2;
Label l3;
Label l4;
Label l5;
TextField ten;
TextField two;
TextField ten1;
TextField two1;
Panel shang;
Panel zhong;
Panel xia;
Panel shang1;
Panel shang2;
Panel shang3;
Panel xia1;
Panel xia2;
Panel xia3;
public erjinzhi_test(){
tentotwo = new Button("十进制转二进制");
twototen = new Button("二进制转十进制");
ten = new TextField();
two = new TextField();
ten1 = new TextField();
two1 = new TextField();
l1 = new Label("十进制");
l2 = new Label("二进制");
l3 = new Label("进制转换工具");
l4 = new Label("十进制");
l5 = new Label("二进制");
shang = new Panel(new GridLayout(3,1));
shang1 = new Panel(new GridLayout(1,2));
shang1add(l1);
shang1add(ten);
shangadd(shang1);
shang3 = new Panel();
shang3add(tentotwo);
shangadd(shang3);
shang2 = new Panel(new GridLayout(1,2));
shang2add(l2);
shang2add(two);
shangadd(shang2);
thisadd(shang,BorderLayoutNORTH);
zhong = new Panel();
zhongadd(l3);
thisadd(zhong,BorderLayoutCENTER);
xia = new Panel(new GridLayout(3,1));
xia1 = new Panel(new GridLayout(1,2));
xia1add(l5);
xia1add(two1);
xiaadd(xia1);
xia3 = new Panel();
xia3add(twototen);
xiaadd(xia3);
xia2 = new Panel(new GridLayout(1,2));
xia2add(l4);
xia2add(ten1);
xiaadd(xia2);
thisadd(xia,BorderLayoutSOUTH);
thissetResizable(false);
thissetSize(280, 260);
thissetLocation(350, 100);
thissetTitle("进制转换工具");
thissetVisible(true);
tentotwoaddActionListener(this);
twototenaddActionListener(this);
}
public static void main(String[] args) {
new erjinzhi_test();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(egetSource()==tentotwo){
int number =IntegerparseInt(tengetText());
twosetText(IntegertoBinaryString(number));
}
if(egetSource()==twototen){
String str = two1getText();
String st[] = new String[strlength()];
st = strsplit("");
int len =strlength();
int sum=0;
int t=1;
for(int i=len;i>=1;i--){
int s =IntegerparseInt(st[i])t;
t=t2;
sum=s+sum;
}
String summ=sum+"";
ten1setText(summ);
}
}
}
1 制作安装包之前写好执行的bat启动文件,收集好及其他扩展文件、文件夹、主程序、java环境(jre)包全部拷贝到一个文件夹中备用。
2 安装Inno Setup,网上有下载,本文利用的是Inno Setup5汉化版, 安装完成后双击桌面快捷方式Inno Setup 编译器打开Inno Setup5
3选择用[脚本向导]创建新的脚本文件点击确定,d出Inno Setup脚本向导,点击下一步
4在d出的菜单中,填入应用程序的名称、版本、及相关制作者信息点击下一步
5在此窗中中指定应用程序的文件夹名称,其他默认,点击下一步
6在此窗口中首先指定应用程序的主程序的文件路径;
7然后点击添加文件将程序运行需要的其他文件依次加入
8如果程序运行需要加入文件夹点击添加文件夹将需要的文件夹加入,因为我们之前将程序运行所需的所有文件都拷贝到一个文件夹中,所以选择添加文件夹一次性将文件全部加入即可
9点击下一步输入程序安装后要创建的开始菜单中的显示名称,勾选创建卸载图标、桌面图标等选项,点击下一步;
10在此窗口中选择要显示的许可文件、及安装前后要显示的信息文件,点击下一步
11选择安装过程中显示的语言,InnoSetup支持多语言,点击下一步
12在此窗口中可以选择安装程序制作好后的输出文件路径及文件名,自定义安装程序图标及安装密码(如果需要的话),点击下一步
13点击下一步,默认即可,下一步
14点击完成
是不是因为你的后台代码执行时间较长,而你没有新开一个线程让他执行?
点大叉关闭要写一句话的framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
学swing还是找本书看看吧,上面这句话肯定是一开始就会讲的
以上就是关于java swing 编写一个界面, A:———————— B :———————— L:—————— 值:——————全部的内容,包括:java swing 编写一个界面, A:———————— B :———————— L:—————— 值:——————、编写一个java/swing程序,它可以执行十进制到二进制和二进制到十进制转换。、如何利用Inno Setup制作java swing程序安装包等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)