您的位置:

基于swing框架的java(swing语句)

本文目录一览:

swing框架是java se里的还是java ee里的?

swing框架是java se里的,里面包含很多组件,可以快速进行搭建界面。java ee主要是网页开发,比如三大框架之类的,jsp

java swing怎样开发出漂亮的界面

使用Swing照样可以开发出漂亮的界面.

主要的解决方案如下:

1: 合理的布局 , 搭建好界面的框架. 熟悉常用的布局, 并且布局还可以嵌套布局.  可以实现复杂而又美观的界面.

2: 适当的图片,  按钮, 背景等 都可以使用图片, 当然了为了节省系统资源, 可以使用稍微压缩得比较小的图片.

3: 搭配html , swing支持html简单的标签, 所以美化JButton ,JLabel等组件时, 可以使用一些Html标签. 来美化~~

4: 颜色调和. 界面要美观, 也可以适当的添加颜色, 但是要注意搭配和协调

5: 重写部分组件, swing自带的组件外观, 的确不太让人恭维,  但是我们可以自己根据需求进行重写.

6: 添加动态效果, 我们写javaScript经常是用来做特效的 , 我们可以借鉴一些JS特效的思路, 使用线程, 来给swing组件 等,添加动态的效果 , 比如抖动,  移动 , 滑出 等 特效~

7: 更换皮肤和外观 , 或者使用第三方的皮肤 ,比大神制作的皮肤BeautyEye ,就想当的漂亮

Java 中的 Swing 框架现在是不是被淘汰了

的确 java写客户端界面这一块 , 还是有很多的劣势的.

比如:

写好的应用, 传给其他电脑, 要想成功运行, 需要对方有java运行环境. 如果没有,那么需要1个几十上百M的 jre包.  那怕就是一个Hello Word的窗口程序..

界面不太美观, 如果试图美化 ,那么比较麻烦...需要很多的类去继承和修改

组件很少, swing连最基本的日期组件 . 都没有提供...

目前C/S架构的软件势头都被B/S架构的软件给盖住了. .. 所以swing也不例外

java的重心也不在swing界面这一块

不过我们还是要简单学习和了解Swing /awt技术

因为 一些古老的软件 有极少的可能是由swing/awt技术开发的. 需要维护

其次, 可以利用swing写一些自己使用的工具软件.  那还是想当方便的~

再次, swing的架构还是比较厉害的, 经典的MVC架构,值得学习

最后, 如果要深入了解java界面技术 ,那么可以了解下javaFX..

java swing组件的优点有哪些?

Java Swing组件的特点:

1、Swing的实现是一个小型GUI框架,该框架无基本平台依赖性,而在AWT实现中却有依赖性。

2、javax.swing.JComponent类是所有Swing组件的基类。

3、Swing模型的目标是要遵循模型-视图-控制器体系结构。模型封装了数据和状态的底层表示。

4、javax.swing.plaf包提供了一个接口和许多抽象类用于定义可插入的外观框架。缺省的外观由javax.swing.plaf.basic包中的类实现。

用java 基于SWING的图形用户界面设计 编写一个应用程序

package heh;//我自己的包名

import java.awt.*;

import java.awt.event.*;

import javax.swing.event.*;

import javax.swing.*;

public class Jsq extends JFrame

{

Panel pan1=new Panel();

Panel pan2=new Panel();

Panel pan3=new Panel();

Panel pan4=new Panel();

Panel pan5=new Panel();

Label la1=new Label("欢迎使用计算器");

Button bt1=new Button(" ");

Button bt2=new Button("MC");

Button bt3=new Button("MR");

Button bt4=new Button("MS");

Button bt5=new Button("M+");

Button bt11=new Button("Backspace");

Button bt12=new Button("CE");

Button bt13=new Button("C");

Button but[]=new Button[20];

String buta[]={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","-/+",".","+","="};

JTextField t1=new JTextField("0");//swing组件,可以设置对齐方式

double a=0;//记录计算中的值或结果

String b="";//“+,-,*,/”运算符号标记

int d=0; //是否刚刚按过运算符号标记

int x=0; //是否刚刚按过“=”号标记

int y=0; //屏幕刚刚出现过汉字的标记

public Jsq()

{

super("计算器");

add(pan1,BorderLayout.NORTH);

add(pan4,BorderLayout.CENTER);

add(pan3,BorderLayout.WEST);

pan3.setLayout(new GridLayout(0,1,10,10));

pan3.add(bt1);pan3.add(bt2);pan3.add(bt3);pan3.add(bt4);pan3.add(bt5);

pan4.setLayout(new BorderLayout());

pan4.add(pan5,BorderLayout.NORTH);

pan4.add(pan2,BorderLayout.CENTER);

pan5.setLayout(new GridLayout(1,3,5,5));

pan5.add(bt11);pan5.add(bt12);pan5.add(bt13);

pan1.setLayout(new GridLayout(3,1));

pan1.add(la1);

pan1.add(t1);

t1.setEditable(false);//文本框设置为不可修改

t1.setHorizontalAlignment(JTextField.RIGHT);//设置文本框对齐方式

pan2.setLayout(new GridLayout(4,5,10,10));

for(int i=0;i20;i++)

{

but[i]=new Button(buta[i]);

pan2.add(but[i]);

}

but[0].addActionListener(new A());

but[1].addActionListener(new A());

but[2].addActionListener(new A());

but[3].addActionListener(new A());

but[4].addActionListener(new A());

but[5].addActionListener(new A());

but[6].addActionListener(new A());

but[7].addActionListener(new A());

but[8].addActionListener(new A());

but[9].addActionListener(new A());

but[10].addActionListener(new A());

but[11].addActionListener(new A());

but[12].addActionListener(new A());

but[13].addActionListener(new A());

but[14].addActionListener(new A());

but[15].addActionListener(new A());

but[16].addActionListener(new A());

but[17].addActionListener(new A());

but[18].addActionListener(new A());

but[19].addActionListener(new A());

bt11.addActionListener(new A());

bt12.addActionListener(new A());

bt13.addActionListener(new A());

bt1.addActionListener(new A());

bt2.addActionListener(new A());

bt3.addActionListener(new A());

bt4.addActionListener(new A());

bt5.addActionListener(new A());

}

class A implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==but[0]) //"7"

{

if(x==1) //判断是否刚刚按过"="

{

t1.setText("7");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{ //如果显示为"0"或"0.0"或者刚刚按过运算符号

t1.setText("7"); //或者屏幕显示为汉字 那么显示为"7"

y=0;//将标记设置为0

}

else

t1.setText(t1.getText()+"7");//将显示的字符串后面加"7"

d=0;//将标记设置为0

if(t1.getText().length()40)//判断显示字符长度是否超过40

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[1]) //"8"

{

if(x==1)

{

t1.setText("8");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("8");

y=0;

}

else

t1.setText(t1.getText()+"8");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[2]) //"9"

{

if(x==1)

{

t1.setText("9");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("9");

y=0;

}

else

t1.setText(t1.getText()+"9");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[3]) //"/"

{

if(y==1) //判断显示的是否为汉字

{

t1.setText("0");

y=0;

}

if(d==0) //判断是否刚刚按过运算符号 防止连续按运算符号产生错误

{

if(b.equals("+"))//四则混合运算时 判断上次计算是否为"+"

{

a=a+Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("-"))//四则混合运算时 判断上次计算是否为"-"

{

a=a-Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("*"))//四则混合运算时 判断上次计算是否为"*"

{

a=a*Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("/"))//四则混合运算时 判断上次计算是否为"/"

{

double f=Double.valueOf(t1.getText()).doubleValue();

if(f==0)//判断除数是否为0

{

t1.setText("错误!请按“CE”清屏后继续计算");

y=1;

}

else

{

a=a/Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(b.equals(""))//判断进行的是不是四则混合运算的第一次运算

{

a=Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))//是否出现了除数为零的错误

{

b="/";//运算符号标记设置为"/"

d=1; //标记已经按过运算符号

}

if(t1.getText().length()40)//判断显示字符长度是否超过40

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;//将记忆的数字抹去

b="";//运算符号标记 为未按过运算符号

d=0;//标记 刚刚没有按过运算符号

y=1;//标记 屏幕显示了汉字

}

}

if(e.getSource()==but[4]) //"sqrt"

{

if(y==1)

{

t1.setText("0");

y=0;

}

double f=Double.valueOf(t1.getText()).doubleValue();

if(f0) //判断被开放数是否小于零

{

t1.setText("错误!被开方数小于0,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

else

{

f=Math.sqrt(f);

t1.setText(""+(f));

}

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[5]) //"4"

{

if(x==1)

{

t1.setText("4");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("4");

y=0;

}

else

t1.setText(t1.getText()+"4");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[6]) //"5"

{

if(x==1)

{

t1.setText("5");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("5");

y=0;

}

else

t1.setText(t1.getText()+"5");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[7]) //"6"

{

if(x==1)

{

t1.setText("6");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("6");

y=0;

}

else

t1.setText(t1.getText()+"6");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[8]) //"*"

{

if(y==1)

{

t1.setText("0");

y=0;

}

if(d==0)

{

if(b.equals("+"))

{

a=a+Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("-"))

{

a=a-Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("*"))

{

a=a*Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("/"))

{

double f=Double.valueOf(t1.getText()).doubleValue();

if(f==0)

{

t1.setText("错误!请按“CE”清屏后继续计算");

y=1;

}

else

{

a=a/Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(b.equals(""))

{

a=Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))

{

b="*";

d=1;

}

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[9]) //"%"

{

if(y==1)

{

t1.setText("0");

y=0;

}

double f=Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+(f/100));

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[10]) //"1"

{

if(x==1)

{

t1.setText("1");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("1");

y=0;

}

else

t1.setText(t1.getText()+"1");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[11]) //"2"

{

if(x==1)

{

t1.setText("2");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("2");

y=0;

}

else

t1.setText(t1.getText()+"2");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[12]) //"3"

{

if(x==1)

{

t1.setText("3");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("3");

y=0;

}

else

t1.setText(t1.getText()+"3");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[13]) //"-"

{

if(y==1)

{

t1.setText("0");

y=0;

}

if(d==0)

{

if(b.equals("+"))

{

a=a+Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("-"))

{

a=a-Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("*"))

{

a=a*Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("/"))

{

double f=Double.valueOf(t1.getText()).doubleValue();

if(f==0)

{

t1.setText("错误!请按“CE”清屏后继续计算");

y=1;

}

else

{

a=a/Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(b.equals(""))

{

a=Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))

{

b="-";

d=1;

}

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[14]) //"1/x"

{

if(y==1)

{

t1.setText("0");

y=0;

}

else

{

double f=Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+(1/f));

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

}

if(e.getSource()==but[15]) //"0"

{

if(x==1)

{

t1.setText("0");

x=0;

}

if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)

{

t1.setText("0");

y=0;

}

else

t1.setText(t1.getText()+"0");

d=0;

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[16]) //"-/+"

{

if(y==1)

{

t1.setText("0");

y=0;

}

double f=Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+(-f));

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[17]) //"."

{

if(y==1)

{

t1.setText("0");

y=0;

}

if(t1.getText().indexOf(".")==-1)//判断是否已经有"."

{

t1.setText(t1.getText()+".");

}

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[18]) //"+"

{

if(y==1)

{

t1.setText("0");

y=0;

}

if(d==0)

{

if(b.equals("+"))

{

a=a+Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("-"))

{

a=a-Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("*"))

{

a=a*Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("/"))

{

double f=Double.valueOf(t1.getText()).doubleValue();

if(f==0)

{

t1.setText("错误!请按“CE”清屏后继续计算");

y=1;

}

else

{

a=a/Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(b.equals(""))

{

a=Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))

{

b="+";

d=1;

}

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==but[19]) //"="

{

if(y==1)

{

t1.setText("0");

y=0;

}

if(b.equals("+"))

{

a=a+Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("-"))

{

a=a-Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("*"))

{

a=a*Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(b.equals("/"))

{

double f=Double.valueOf(t1.getText()).doubleValue();

if(f==0)

{

t1.setText("错误!请按“CE”清屏后继续计算");

y=1;

}

else

{

a=a/Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

}

if(b.equals(""))

{

a=Double.valueOf(t1.getText()).doubleValue();

t1.setText(""+a);

}

if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))

{

b="";

d=1;

x=1;

}

if(t1.getText().length()40)

{

t1.setText("错误!数字过长,请按“C”从新输入");

a=0.0;

b="";

d=0;

y=1;

}

}

if(e.getSource()==bt11) //"Backspace"

{

if(y==1)

{

t1.setText("0");

y=0;

}

else

{

String s1=t1.getText();

if(s1.length()==1)//如果将显示的数字全部退掉 则显示"0"

{

t1.setText("0");

}

else

{

t1.setText(s1.substring(0,(s1.length()-1)));//退格

}

}

}

if(e.getSource()==bt12) //"CE"

{

t1.setText("0");//清屏

}

if(e.getSource()==bt13) //"C" 初始化

{

t1.setText("0");

a=0.0;

b="";

d=0;

}

if(e.getSource()==bt1) //""

{

}

if(e.getSource()==bt2) //"MC"

{

}

if(e.getSource()==bt3) //"MR"

{

}

if(e.getSource()==bt4) //"MS"

{

}

if(e.getSource()==bt5) //"M+"

{

}

}

}

public static void main(String args[])

{

Jsq a=new Jsq();

a.setSize(300,250);

a.setVisible(true);

}

}

java swing中关于框架之间的调用

如果你要A框架 和B框架每次都是 同一个 就不要NEW了

把他们都设为单例模式 这样你每次都是获取同一个A和B 获取到同一个对象就好了