Java窗体小demo

1,空白窗体demo

public static void main(String[] args) throws Exception {

		test();
	}

	public static void test() throws Exception {

		JFrame frame = new JFrame("守护进程"); // 创建指定标题的JFrame窗口对象
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭按钮的动作为退出窗口
		frame.setSize(800, 600); // 设置窗口大小
		Dimension displaySize = Toolkit.getDefaultToolkit().getScreenSize(); // 获得显示器大小对象
		Dimension frameSize = frame.getSize(); // 获得窗口大小对象
		if (frameSize.width > displaySize.width)
			frameSize.width = displaySize.width; // 窗口的宽度不能大于显示器的宽度
		if (frameSize.height > displaySize.height)
			frameSize.height = displaySize.height; // 窗口的高度不能大于显示器的高度
		frame.setLocation((displaySize.width - frameSize.width) / 2, (displaySize.height - frameSize.height) / 2); // 设置窗口居中显示器显示
		frame.setVisible(true); // 设置窗口为可见的,默认为不可见

		// 窗体图标设置 注意路径问题 
		String src = "/first/Chrysanthemum.jpg";
		Image image = ImageIO.read(frame.getClass().getResource(src));
		frame.setIconImage(image);

		JPanel panel = new JPanel();
		JTextArea textArea = new JTextArea();

		panel.setLayout(new GridLayout());
		textArea.setText("test \n");
		// 当TextArea里的内容过长时生成滚动条
		panel.add(new JScrollPane(textArea));
		frame.add(panel);
        //循环添加文本
		int k = 0;
		while (true) {
			Thread.sleep(1000);
			textArea.append("text=====" + k++ + "     ");
			if (k % 10 == 0) {
				textArea.append(" \n");
			}
		}

	}

2,含有组件的窗体

package Frame;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.*;
import javax.swing.WindowConstants;

public class EndInt extends JFrame {
    public EndInt() {
        super();
        this.setTitle("注册");
        //创建容器
        Container cont = getContentPane();
        //设置为自由布局
        this.setLayout(null);
        //各组件的创建
        JLabel jl1 = new JLabel("请输入昵称:");                    //标签框
        JTextField jtf1 = new JTextField();                        //文本框
        JLabel jl2 = new JLabel("请输入登录密码:");
        JPasswordField jpf1 = new JPasswordField();                //密码框
        jpf1.setEchoChar('*');                                    //设置密码字符为*
        JLabel jl3 = new JLabel("再次输入登录密码:");
        JPasswordField jpf2 = new JPasswordField();
        jpf2.setEchoChar('*');    
        JLabel jl4 = new JLabel("请选择性别:");                    //单选框
        JRadioButton jrb1 = new JRadioButton("男");
        JRadioButton jrb2 = new JRadioButton("女");
        ButtonGroup bg = new ButtonGroup();                        //一定将单选框加入进去,不然男女能同时选择
        bg.add(jrb1);
        bg.add(jrb2);
        jrb1.setSelected(true);                                    //设置默认为男
        JLabel jl5 = new JLabel("请选择城市:");                    //下拉框
        JComboBox jcb = new JComboBox();
        jcb.addItem("北京");
        jcb.addItem("天津");
        jcb.addItem("武汉");
        jcb.setSelectedIndex(0);
        JLabel jl6 = new JLabel("个性签名:");
        JTextArea  jta2 = new JTextArea();
        jta2.setLineWrap(true);                                    //设置文本框为自动换行
        JScrollPane jsp = new JScrollPane(jta2);                //设置文本框有滚动条
        JButton jb1 = new JButton("申请账号");                    //按钮
        JButton jb2 = new JButton("重置信息");
        //申请账号
        jb1.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                //判断两次密码是否一致,一致时弹出成功,不一致时提示不一致并情况两次填写的密码框
                String str1 = new String(jpf1.getPassword());    //先将密码转换为String类型,然后再比较
                String str2 = new String(jpf2.getPassword());
                if(str1.equals(str2)){
                    JOptionPane.showMessageDialog(null, "申请成功!您的账号是:"+12323+";密码是:"+jpf1.getText());
                }
                else
                {
                    JOptionPane.showMessageDialog(null,"两次输入的密码不一致,请重新输入!");
                    jpf1.setText("");
                    jpf2.setText("");
                }
                //JOptionPane.showMessageDialog(null, "申请成功!您的账号是:"+12323+";密码是:"+jpf1.getText());
            }
        });
        //重置信息
        jb2.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                //清空
                jtf1.setText("");
                jpf1.setText("");
                jpf2.setText("");
                jrb1.setSelected(true);
                jcb.setSelectedIndex(0);
                jta2.setText("");
            }
        });
        //将空间加入到Container容器里面
        cont.add(jl1);
        cont.add(jtf1);
        cont.add(jl2);
        cont.add(jpf1);
        cont.add(jl3);
        cont.add(jpf2);
        cont.add(jl4);
        cont.add(jrb1);
        cont.add(jrb2);
        cont.add(jl5);
        cont.add(jcb);
        cont.add(jl6);
        cont.add(jsp);
        cont.add(jb1);
        cont.add(jb2);
        //控制各组件的位置及大小
        jl1.setBounds(30, 20, 120, 20);
        jtf1.setBounds(150, 20, 200, 20);
        jl2.setBounds(30, 50, 120, 20);
        jpf1.setBounds(150, 50, 200, 20);
        jl3.setBounds(30, 80, 120, 20);
        jpf2.setBounds(150, 80, 200, 20);
        jl4.setBounds(30, 110, 120, 20);
        jrb1.setBounds(190, 110, 50, 20);
        jrb2.setBounds(260, 110, 50, 20);
        jl5.setBounds(30, 140, 120, 20);
        jcb.setBounds(150, 140, 200, 20);
        jl6.setBounds(30, 170, 120, 20);
        jsp.setBounds(150, 170, 200, 80);
        jb1.setBounds(80, 280, 100, 20);
        jb2.setBounds(200, 280, 100, 20);
        //设置窗体大小、位置、关闭方式、不允许拉伸及显示
        this.setBounds(500, 260, 400, 350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setResizable(false);
        this.setVisible(true);
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //调用构造方法
        new EndInt();
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值