1.去掉原来的界面的装饰,改用自己装饰:

先看看效果,如下图

Java图形化编程美化_第1张图片

 

如何实现:

1.去掉原来的windows的装饰:

this.setSize(340, 256);

this.setUndecorated(true);

//虽然去掉了装饰,但是下面的界面图标与界面的标题是不可以去掉的,否则在桌面最下面的工具栏中会看不到标题与图标的。

URL url5 = this.getClass().getResource("/p_w_picpath/client_title.png");

this.setIconImage(new ImageIcon(url5).getImage());

this.setTitle("用户登录");

this.setLocation(new ScreenLocation(348,250).getLocation());

this.setVisible(true);

this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

this.setResizable(false);

2.移动界面的代码:

Point loc = null;

Point tmp = null;

boolean isDragged = false;

//拖动窗体的方法

private void setDragable() {

this.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseReleased(java.awt.event.MouseEvent e) {

isDragged = false;

//当鼠标不拖动时,设置鼠标显示的样式

setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

}

public void mousePressed(java.awt.event.MouseEvent e) {

tmp = new Point(e.getX(), e.getY());

isDragged = true;

//当鼠标点击时,鼠标显示的样式

setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

}

});

//添加鼠标运动监听器

this.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {

public void mouseDragged(java.awt.event.MouseEvent e) {

if (isDragged) {

//重新设置界面的位置

loc = new Point(getLocation().x + e.getX() - tmp.x,

getLocation().y + e.getY() - tmp.y);

setLocation(loc);

}

}

});

}

3.添加界面最下化与关闭按钮:

//处理关闭窗口按钮

//com为界面的容器,exit为按钮JButton

com.add(exit);

exit.setBounds(300, 1, 37, 20);

exit.setBorder(null);

exit.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_exit.jpg")));

exit.addMouseListener(new MouseAdapter() {

public void mouseEntered(MouseEvent e) {

exit.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_exit2.jpg")));

}

public void mouseExited(MouseEvent e) {

exit.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_exit.jpg")));

}

public void mouseClicked(MouseEvent e) {

if(e.getClickCount() == 1){

System.exit(0);

}

}

});

//处理最小化窗口按钮

//com为界面的容器,minux为按钮JButton

com.add(minux);

minux.setBounds(272,1, 29, 20);

minux.setBorder(null);

minux.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_minux.jpg")));

minux.addMouseListener(new MouseAdapter() {

public void mouseEntered(MouseEvent e) {

minux.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_minux2.jpg")));

}

public void mouseExited(MouseEvent e) {

minux.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_minux.jpg")));

}

public void mouseClicked(MouseEvent e) {

if(e.getClickCount() == 1){

//从界面管理容器中取得主界面,然后最小化

FaceManager.getFace("login").setExtendedState(JFrame.ICONIFIED);

}

}

});

4.要实现界面为一张图片,主界面的布局要设置为null,然后用一个JLabel来放置背景图片。

URL url1 = this.getClass().getResource("/p_w_picpath/login.jpg");

background = new JLabel(new ImageIcon(url1));

Container com = this.getContentPane();

com.setLayout(null);

com.add(background);

background.setBounds(0, 0, 340, 256);

//下面是添加可以移动的方法

setDragable();

全部代码如下

   
   
   
   
  1. public class ClientLogin extends JFrame implements ActionListener {  
  2.     private static final long serialVersionUID = 1L;  
  3.       
  4.     public static String serverIp = "127.0.0.1";  
  5.       
  6.       
  7.     JLabel background,jl_uname,jl_psd,jl_ip;  
  8.     JPanel con,control;  
  9.     JTextField username,ipaddr;  
  10.     JPasswordField password;  
  11.     JButton jb_login,jb_cannel,jb_regist;  
  12.       
  13.  
  14.     JButton exit = new JButton();  
  15.     JButton minux = new JButton();  
  16.       
  17.     Point loc = null;  
  18.     Point tmp = null;  
  19.     boolean isDragged = false;  
  20.  
  21.     //拖动窗体的方法  
  22.     private void setDragable() {  
  23.         this.addMouseListener(new java.awt.event.MouseAdapter() {  
  24.             public void mouseReleased(java.awt.event.MouseEvent e) {  
  25.                 isDragged = false;  
  26.                 setCursor(new Cursor(Cursor.DEFAULT_CURSOR));  
  27.             }  
  28.             public void mousePressed(java.awt.event.MouseEvent e) {  
  29.                 tmp = new Point(e.getX(), e.getY());  
  30.                 isDragged = true;  
  31.                 setCursor(new Cursor(Cursor.DEFAULT_CURSOR));  
  32.             }  
  33.         });  
  34.         this.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {  
  35.             public void mouseDragged(java.awt.event.MouseEvent e) {  
  36.                 if (isDragged) {  
  37.                     loc = new Point(getLocation().x + e.getX() - tmp.x,  
  38.                             getLocation().y + e.getY() - tmp.y);  
  39.                     setLocation(loc);  
  40.                 }  
  41.             }  
  42.         });  
  43.     }  
  44.       
  45.     //构造函数  
  46.     public ClientLogin() {  
  47.         FaceManager.addFace("login"this);  
  48.         URL url1 = this.getClass().getResource("/p_w_picpath/login.jpg");  
  49.         background = new JLabel(new ImageIcon(url1));  
  50.         con = new JPanel(null);  
  51.         jl_uname = new JLabel("用户名:",JLabel.CENTER);  
  52.         jl_psd = new JLabel("密码:",JLabel.CENTER);  
  53.         username = new JTextField();  
  54.         password = new JPasswordField();  
  55.         jl_ip = new JLabel("服务IP:");  
  56.         ipaddr = new JTextField(serverIp);  
  57.         con.add(jl_uname);  
  58.         con.add(username);  
  59.         con.add(jl_psd);  
  60.         con.add(password);  
  61.         con.add(jl_ip);  
  62.         con.add(ipaddr);  
  63.         control = new JPanel();  
  64.           
  65.         //处理南部  
  66.         URL url2 = this.getClass().getResource("/p_w_picpath/denglu.gif");  
  67.         jb_login = new JButton(new ImageIcon(url2));  
  68.         jb_login.addActionListener(this);  
  69.         URL url3 = this.getClass().getResource("/p_w_picpath/quxiao.gif");  
  70.         jb_cannel = new JButton(new ImageIcon(url3));  
  71.         jb_cannel.addActionListener(this);  
  72.         URL url4 = this.getClass().getResource("/p_w_picpath/xiangdao.gif");  
  73.         jb_regist = new JButton(new ImageIcon(url4));  
  74.         jb_regist.addActionListener(this);  
  75.  
  76.         //control.setBackground(Color.pink);  
  77.           
  78.         Container com = this.getContentPane();  
  79.         com.setLayout(null);  
  80.         com.add(jl_uname);  
  81.         jl_uname.setBounds(5012050,20);  
  82.         com.add(username);  
  83.         username.setBounds(11012015020);  
  84.         com.add(jl_psd);  
  85.         jl_psd.setBounds(5015550,20);  
  86.         com.add(password);  
  87.         password.setBounds(11015515020);  
  88.         com.add(jl_ip);  
  89.         jl_ip.setBounds(5019050,20);  
  90.         com.add(ipaddr);  
  91.         ipaddr.setBounds(11019015020);  
  92.           
  93.         com.add(jb_login);  
  94.         jb_login.setBounds(402256620);  
  95.         com.add(jb_cannel);  
  96.         jb_cannel.setBounds(1302256620);  
  97.         com.add(jb_regist);  
  98.         jb_regist.setBounds(2202256620);  
  99.           
  100.           
  101.         com.add(background);  
  102.         background.setBounds(00340256);  
  103.         setDragable();  
  104.           
  105.         //处理关闭窗口按钮  
  106.         com.add(exit);  
  107.         exit.setBounds(30013720);  
  108.         exit.setBorder(null);  
  109.         exit.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_exit.jpg")));  
  110.         exit.addMouseListener(new MouseAdapter() {  
  111.             public void mouseEntered(MouseEvent e) {  
  112.                 exit.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_exit2.jpg")));  
  113.             }  
  114.             public void mouseExited(MouseEvent e) {  
  115.                 exit.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_exit.jpg")));  
  116.             }  
  117.             public void mouseClicked(MouseEvent e) {  
  118.                 if(e.getClickCount() == 1){  
  119.                     System.exit(0);  
  120.                 }  
  121.             }  
  122.         });  
  123.           
  124.         //处理最小化窗口按钮  
  125.         com.add(minux);  
  126.         minux.setBounds(272,12920);  
  127.         minux.setBorder(null);  
  128.         minux.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_minux.jpg")));  
  129.         minux.addMouseListener(new MouseAdapter() {  
  130.             public void mouseEntered(MouseEvent e) {  
  131.                 minux.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_minux2.jpg")));  
  132.             }  
  133.             public void mouseExited(MouseEvent e) {  
  134.                 minux.setIcon(new ImageIcon(this.getClass().getResource("/p_w_picpath/login_minux.jpg")));  
  135.             }  
  136.             public void mouseClicked(MouseEvent e) {  
  137.                 if(e.getClickCount() == 1){  
  138.                     FaceManager.getFace("login").setExtendedState(JFrame.ICONIFIED);   
  139.                 }  
  140.             }  
  141.         });  
  142.           
  143.         this.setUndecorated(true);  
  144.         URL url5 = this.getClass().getResource("/p_w_picpath/client_title.png");  
  145.         this.setIconImage(new ImageIcon(url5).getImage());  
  146.         this.setSize(340256);  
  147.         this.setTitle("用户登录");  
  148.         this.setLocation(new ScreenLocation(348,250).getLocation());  
  149.         this.setVisible(true);  
  150.         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);  
  151.         this.setResizable(false);  
  152.     }  
  153.  
  154.     //处理事件  
  155.     public void actionPerformed(ActionEvent e) {  
  156.         if(e.getSource() == jb_cannel){  
  157.             //取消  
  158.             username.setText("");  
  159.             password.setText("");  
  160.             ipaddr.setText("");  
  161.         }else if(e.getSource() == jb_login){  
  162.             String ip = ipaddr.getText().trim();  
  163.             if(ip != null && ip.length()>0)  
  164.             {  
  165.                 serverIp = ip;  
  166.             }  
  167.             User u = new User();  
  168.             u.setUsername(username.getText().trim());  
  169.             u.setPassword(new String(password.getPassword()));  
  170.             u.setAction(1);  
  171.             //检测用户  
  172.             AlmClientUser qcu = new AlmClientUser();  
  173.             int result = qcu.checkUser(u);  
  174.             if(1 == result){  
  175.                 new ClientFace(u.getUsername());                  
  176.                 //关闭登陆页面  
  177.                 this.dispose();  
  178.             }else if(2 == result){  
  179.                 JOptionPane.showMessageDialog(this"连接服务器的ip错误,暂时无法连接,请稍后再试");  
  180.             }else if(3 == result){  
  181.                 JOptionPane.showMessageDialog(this"服务器暂时关闭,请稍后再试");  
  182.             }else if(4 == result){  
  183.                 JOptionPane.showMessageDialog(this"无法与服务器通信,请稍后再试");  
  184.             }else{  
  185.                 JOptionPane.showMessageDialog(this"用户名或密码错误");  
  186.             }  
  187.         }else if(e.getSource() == jb_regist){  
  188.             //注册  
  189.             UserReg reg = new UserReg(this);  
  190.             reg.setVisible(true);  
  191.         }  
  192.     }  
  193. }