1、java 布局管理器-布局管理器之null布局(空布局) 的 学习,参考大神教程:http://www.cnblogs.com/liaoliao/p/5009445.html
import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.WindowConstants; public class SuoZhangFrame extends JFrame { public SuoZhangFrame(String title) { this.setTitle(title);//设置窗口标题 //这句代码是当用户关闭窗口的时候关掉应用程序 this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.setSize(800, 600);//设置长和宽,最常见的屏幕分辨率 1366*768,2017年3月9日09:31:24 this.setLocation(100,100);//设置起点位置,屏幕右上角 为(0,0) this.setVisible(true); //设置窗口的可见性 //设置窗体为空布局,2017年3月9日14:04:26 this.setLayout(null); //创建一个单行文本对象 JTextField textfield =new JTextField("请输入要发送的消息"); //添加这个 单行文本 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个单行文本控件 this.getContentPane().add(textfield); //设置 "单行文本"的精确位置(x,y,width,height) textfield.setBounds(60,30,180,35); //创建一个按钮1对象 JButton button1 =new JButton("发送"); //添加这个 按钮1 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个单行文本控件 this.getContentPane().add(button1); //设置 "按钮1"的精确位置(x,y,width,height) //注意 Y ==85 是大于 textfield的 Y 值+height 值,这样两个容器才不会重叠 button1.setBounds(60,85,105,35); // //创建一个面板对象,这个面板就是一个组件容器 // JPanel pan = new JPanel(); // // //添加 容器 // this.add(pan); // // //创建一个标签对象 // JLabel label =new JLabel("测试标签",null,SwingConstants.RIGHT); // // //添加这个 标签 lable 对象 到面板上 // pan.add(label); // // //创建一个单行文本对象 // JTextField textfield =new JTextField("测试单行文本输入框"); // // //添加这个 单行文本 对象 到面板上 // pan.add(textfield); // // //创建一个 单行文本密码输入框 对象 // JPasswordField passwordfield =new JPasswordField("123456");//默认密码 123456 // // //添加这个 单行文本密码输入框 对象 到面板上 // pan.add(passwordfield); // // //创建一个 显示纯文本的多行区域 对象 // JTextArea textarea =new JTextArea("测试显示纯文本的多行区域"); // // //添加这个 显示纯文本的多行区域 对象 到面板上 // pan.add(textarea); // // //创建一个按钮对象 // JButton button =new JButton("测试按钮"); // // //添加这个 BUTTON 对象 到面板上 // pan.add(button); // // //创建一个单选按钮对象 // JRadioButton jradiobutton =new JRadioButton("测试单选按钮"); // // //添加这个 jradiobutton 对象 到面板上 // pan.add(jradiobutton); // // //创建一个多选按钮对象 // JCheckBox jchackbox =new JCheckBox("测试多选按钮"); // // //添加这个 jchackbox 对象 到面板上 // pan.add(jchackbox); //创建一个列表对象,list 需要 设置内容,暂时还不会,2017年3月9日10:15:44 //JList jlist =new JList("测试列表"); //添加这个 jlist 对象 到面板上 //pan.add(jlist); //创建一个下拉列表对象,JComboBox 需要 设置内容,暂时还不会,2017年3月9日10:15:44 //JComboBox jcombobox =new JComboBox("测试下拉列表"); //添加这个 jcombobox 对象 到面板上 //pan.add(jcombobox); } }
public class UsartControl { public static void main(String[] args) { // TODO Auto-generated method stub SuoZhangFrame frame = new SuoZhangFrame("网点控制器网络模拟器 V1.0"); } }
运行效果图:
import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.WindowConstants; public class SuoZhangFrame extends JFrame { public SuoZhangFrame(String title) { this.setTitle(title);//设置窗口标题 //这句代码是当用户关闭窗口的时候关掉应用程序 this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.setSize(800, 600);//设置长和宽,最常见的屏幕分辨率 1366*768,2017年3月9日09:31:24 this.setLocation(100,100);//设置起点位置,屏幕右上角 为(0,0) this.setVisible(true); //设置窗口的可见性 //设置窗体为空布局,2017年3月9日14:04:26 this.setLayout(null); //创建一个单行文本对象 JTextField textfield =new JTextField("请输入要发送的消息"); //添加这个 单行文本 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个单行文本控件 this.getContentPane().add(textfield); //设置 "单行文本"的精确位置(x,y,width,height) textfield.setBounds(60,30,180,35); //创建一个按钮1对象 JButton button1 =new JButton("发送"); //添加这个 按钮1 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个按钮1 this.getContentPane().add(button1); //设置 "按钮1"的精确位置(x,y,width,height) //注意 Y ==85 是大于 textfield的 Y 值+height 值,这样两个控件才不会重叠 button1.setBounds(60,85,105,35); //创建一个标签对象 JLabel label =new JLabel("接收消息显示区域"); //添加这个 标签 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个标签 this.getContentPane().add(label); //设置 "标签对象"的精确位置(x,y,width,height) //注意 Y ==85 是大于 button1 的 Y 值+height 值,这样两个控件才不会重叠 label.setBounds(60,130,105,35); //创建一个 显示纯文本的多行区域 对象 JTextArea textarea =new JTextArea("接收数据显示区域,2017年3月9日15:10:07"); //添加这个 显示纯文本的多行区域 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个显示纯文本的多行区域 this.getContentPane().add(textarea); //设置 "显示纯文本的多行区域"的精确位置(x,y,width,height) //注意 Y ==85 是大于 label 的 Y 值+height 值,这样两个控件才不会重叠 textarea.setBounds(60,180,505,205); // //创建一个面板对象,这个面板就是一个组件容器 // JPanel pan = new JPanel(); // // //添加 容器 // this.add(pan); // // //创建一个标签对象 // JLabel label =new JLabel("测试标签",null,SwingConstants.RIGHT); // // //添加这个 标签 lable 对象 到面板上 // pan.add(label); // // //创建一个单行文本对象 // JTextField textfield =new JTextField("测试单行文本输入框"); // // //添加这个 单行文本 对象 到面板上 // pan.add(textfield); // // //创建一个 单行文本密码输入框 对象 // JPasswordField passwordfield =new JPasswordField("123456");//默认密码 123456 // // //添加这个 单行文本密码输入框 对象 到面板上 // pan.add(passwordfield); // // //创建一个 显示纯文本的多行区域 对象 // JTextArea textarea =new JTextArea("测试显示纯文本的多行区域"); // // //添加这个 显示纯文本的多行区域 对象 到面板上 // pan.add(textarea); // // //创建一个按钮对象 // JButton button =new JButton("测试按钮"); // // //添加这个 BUTTON 对象 到面板上 // pan.add(button); // // //创建一个单选按钮对象 // JRadioButton jradiobutton =new JRadioButton("测试单选按钮"); // // //添加这个 jradiobutton 对象 到面板上 // pan.add(jradiobutton); // // //创建一个多选按钮对象 // JCheckBox jchackbox =new JCheckBox("测试多选按钮"); // // //添加这个 jchackbox 对象 到面板上 // pan.add(jchackbox); //创建一个列表对象,list 需要 设置内容,暂时还不会,2017年3月9日10:15:44 //JList jlist =new JList("测试列表"); //添加这个 jlist 对象 到面板上 //pan.add(jlist); //创建一个下拉列表对象,JComboBox 需要 设置内容,暂时还不会,2017年3月9日10:15:44 //JComboBox jcombobox =new JComboBox("测试下拉列表"); //添加这个 jcombobox 对象 到面板上 //pan.add(jcombobox); } }
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.WindowConstants; public class SuoZhangFrame extends JFrame { static int clickCounter=0; public SuoZhangFrame(String title) { this.setTitle(title);//设置窗口标题 //这句代码是当用户关闭窗口的时候关掉应用程序 this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.setSize(800, 600);//设置长和宽,最常见的屏幕分辨率 1366*768,2017年3月9日09:31:24 this.setLocation(100,100);//设置起点位置,屏幕右上角 为(0,0) this.setVisible(true); //设置窗口的可见性 //设置窗体为空布局,2017年3月9日14:04:26 this.setLayout(null); //创建一个单行文本对象 JTextField textfield =new JTextField("请输入要发送的消息"); //添加这个 单行文本 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个单行文本控件 this.getContentPane().add(textfield); //设置 "单行文本"的精确位置(x,y,width,height) textfield.setBounds(60,30,180,35); //创建一个按钮1对象 JButton button1 =new JButton("发送"); //添加这个 按钮1 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个按钮1 this.getContentPane().add(button1); //设置 "按钮1"的精确位置(x,y,width,height) //注意 Y ==85 是大于 textfield的 Y 值+height 值,这样两个控件才不会重叠 button1.setBounds(60,85,105,35); //创建一个标签对象 JLabel label =new JLabel("接收消息显示区域"); //添加这个 标签 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个标签 this.getContentPane().add(label); //设置 "标签对象"的精确位置(x,y,width,height) //注意 Y ==130 是大于 button1 的 Y 值+height 值,这样两个控件才不会重叠 label.setBounds(60,130,105,35); //创建一个 显示纯文本的多行区域 对象 JTextArea textarea =new JTextArea("接收数据显示区域,2017年3月9日15:10:07"); //添加这个 显示纯文本的多行区域 对象 到面板上,2017年3月9日14:16:09 //这里 实际是两步 ,先初始化一个容器,然后在这个容器上添加一个显示纯文本的多行区域 this.getContentPane().add(textarea); //设置 "显示纯文本的多行区域"的精确位置(x,y,width,height) //注意 Y ==180 是大于 label 的 Y 值+height 值,这样两个控件才不会重叠 textarea.setBounds(60,180,505,205); //使用匿名的内部类,第一种事件监听方法 button1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { clickCounter++; // TODO Auto-generated method stub textarea.setText("我被点击了"+clickCounter); } }); // //创建一个面板对象,这个面板就是一个组件容器 // JPanel pan = new JPanel(); // // //添加 容器 // this.add(pan); // // //创建一个标签对象 // JLabel label =new JLabel("测试标签",null,SwingConstants.RIGHT); // // //添加这个 标签 lable 对象 到面板上 // pan.add(label); // // //创建一个单行文本对象 // JTextField textfield =new JTextField("测试单行文本输入框"); // // //添加这个 单行文本 对象 到面板上 // pan.add(textfield); // // //创建一个 单行文本密码输入框 对象 // JPasswordField passwordfield =new JPasswordField("123456");//默认密码 123456 // // //添加这个 单行文本密码输入框 对象 到面板上 // pan.add(passwordfield); // // //创建一个 显示纯文本的多行区域 对象 // JTextArea textarea =new JTextArea("测试显示纯文本的多行区域"); // // //添加这个 显示纯文本的多行区域 对象 到面板上 // pan.add(textarea); // // //创建一个按钮对象 // JButton button =new JButton("测试按钮"); // // //添加这个 BUTTON 对象 到面板上 // pan.add(button); // // //创建一个单选按钮对象 // JRadioButton jradiobutton =new JRadioButton("测试单选按钮"); // // //添加这个 jradiobutton 对象 到面板上 // pan.add(jradiobutton); // // //创建一个多选按钮对象 // JCheckBox jchackbox =new JCheckBox("测试多选按钮"); // // //添加这个 jchackbox 对象 到面板上 // pan.add(jchackbox); //创建一个列表对象,list 需要 设置内容,暂时还不会,2017年3月9日10:15:44 //JList jlist =new JList("测试列表"); //添加这个 jlist 对象 到面板上 //pan.add(jlist); //创建一个下拉列表对象,JComboBox 需要 设置内容,暂时还不会,2017年3月9日10:15:44 //JComboBox jcombobox =new JComboBox("测试下拉列表"); //添加这个 jcombobox 对象 到面板上 //pan.add(jcombobox); } }