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();
}
}