swing学习了那么久,好久没有接触,有所陌生,是时候整理和统计一番了,统计估计没那么好,便于自己日后的理解。
首先接触swing,要导包
导包
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
1.定义组件:
JLabel jl_username = new JLabel(“用户名”);
JLabel jl_psw = new JLabel(“密码”);
2.设定布局和添加组件
setLayout(new FlowLayout());
add(jl_username);
add(jf_username);
3.设置窗体属性
setTitle(“登陆窗体”);
setSize(500,400);
setVisible(true);
这是最简单的swing的窗体登录,接下来就是布局,布局是分为4种
1.流式布局FlowLayout
例如:setLayout(new FlowLayout(FlowLayout.LEFT,50,50));
2.边界布局BorderLayout
例如:setLayout(new BorderLayout());
add(jb,BorderLayout.EAST/WEST/SOUTH/NORTH);
3.网格布局GridLayout
setLayout(new GridLayout(3,3));
添加标签图标和背景图片
JLabel jl_username = new JLabel(“用户名”,new ImageIcon(“E:/player1.jpg”),JLabel.CENTER);
添加窗体背景
JLabel jlback = new JLabel(new ImageIcon(“E:/enemy6.jpg”));
jlback.setBounds(0,0,450,300);
getLayeredPane().add(jlback,new Integer(Integer.MIN_VALUE));
((JPanel)getContentPane()).setOpaque(false);
jp1.setOpaque(false);
jp2.setOpaque(false);
setVisible(true);
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*内部类
*@author :里小米
*@time :2017/4/6
*/
public class LoginFrame extends JFrame{
JTextField jtf_username = new JTextField(15);
JPasswordField jtf_psw = new JPasswordField(115);
public LoginFrame(){
JLabel jl_username = new JLabel("用户名",new ImageIcon("E:/player1.jpg"),JLabel.CENTER);
//JTextField jtf_username = new JTextField(15);
JLabel jl_psw = new JLabel("密 码",JLabel.CENTER);
//JPasswordField jtf_psw = new JPasswordField(15);
JButton jb_login = new JButton("登陆");
JButton jb_reset = new JButton("重置");
//设定布局
JPanel titlePanel = new JPanel();
titlePanel.setLayout(new BorderLayout());
titlePanel.add(new JLabel("登陆页面",JLabel.CENTER));//运用标签
titlePanel.setFont(new Font("宋体",Font.BOLD,20));
add(titlePanel,BorderLayout.NORTH);
JPanel jp1 = new JPanel();
jp1.setLayout(new GridLayout(2,2,0,20));
jp1.add(jl_username);
jp1.add(jtf_username);
jp1.add(jl_psw);
jp1.add(jtf_psw);
add(jp1,BorderLayout.CENTER);
JPanel jp2 = new JPanel();
jp2.setLayout(new FlowLayout(FlowLayout.CENTER,35,0));
jp2.add(jb_login);
jp2.add(jb_reset);
add(jp2,BorderLayout.SOUTH);
jb_reset.addActionListener(new Logine());
setTitle("登录界面");
setSize(450,300);
setLocation(200,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
int width = (int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth());
int height = (int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight());
int f_width = getWidth();
int f_height = getHeight();
setLocation((width - f_width)/2,(height - f_height)/2);
JLabel jlback = new JLabel(new ImageIcon("E:/enemy6.jpg"));
jlback.setBounds(0,0,450,300);
getLayeredPane().add(jlback,new Integer(Integer.MIN_VALUE));
((JPanel)getContentPane()).setOpaque(false);
jp1.setOpaque(false);
jp2.setOpaque(false);
setVisible(true);
}
class Logine implements ActionListener{
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"你点了重置按钮");
jtf_username.setText("");
jtf_psw.setText("");
}
}
public static void main(String[] args){
new LoginFrame();
}
}