Swing普通控件

来源:互联网 发布:ajax json java 编辑:程序博客网 时间:2024/04/28 01:51

这篇文章给大家演示一下Swing中的普通控件的用法,为了方面大家入门,我们的示例将会尽可能的简化。Swing中的普通控件包括JLabel(文本标签),JTextField(单行文本输入框), JPasswordField(密码输入框),JRadioButton(单选框),JCheckBox(复选框),JComboBox(下拉列表框),JList(普通列表框)JTextArea(多行文本输入框),JButton(普通按钮)。为了增加趣味性,也把JFileChooserJColorChooser加上了。运行效果如下:

 

代码如下:

package org.leno.swing.demo1;

 

import java.awt.*;

import javax.swing.*;

 

 

/**

 * @author leno

 * @version 1.0

 * 一个例子程序,让大家系统地了解Swing中一些普通控件的基本用法

 * http://blog.csdn.net/lenotang 转载请保留相关出处信息!

 */

public class DemoPlainComponent {

 

       public static void main(String[] args) {

              JFrame.setDefaultLookAndFeelDecorated(true);

              //创建一个窗体

              JFrame jFrame = new JFrame("示例普通Swing控件");

              //设置窗体的位置和大小

              jFrame.setLocation(100, 100);

              jFrame.setSize(700, 600);

              //设置手动布局,这样意味着放在jFrame内容面板上的组件都要指定自身的位置和大小,否则将不会显示。JFrame默认布局方式为BorderLayout

              jFrame.setLayout(null);

              //设置窗体的关闭行为

              jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

              //获得窗体的内容窗格

              Container contentPane = jFrame.getContentPane();

              //创建一个文本标签并指定自身在容器中的相对位置和大小

              JLabel jLabel = new JLabel("姓名:");

              jLabel.setBounds(20, 20, 30, 20);

              JTextField jTextField = new JTextField("无名氏");

              jTextField.setBounds(60, 20, 120, 20);

              JLabel jLabel2 = new JLabel("密码:");

              jLabel2.setBounds(190, 20, 30, 20);

              JPasswordField jPasswordField = new JPasswordField("看不见");

              jPasswordField.setBounds(230, 20, 120, 20);

              JLabel jLabel3 = new JLabel("偶像:");

              jLabel3.setBounds(360, 20, 30, 20);

              Object[] stars = new Object[]{"刘德华","张学友","郭富城","黎明"};

              JComboBox jComboBox = new JComboBox(stars);

              jComboBox.setBounds(400, 20, 120, 20);

             

              JLabel jLabel4 = new JLabel("性别:");

              jLabel4.setBounds(20, 50, 30, 20);

              ButtonGroup buttonGroup = new ButtonGroup();

              JRadioButton jRadioButton1 = new JRadioButton("",true);

              jRadioButton1.setBounds(60, 50, 40, 20);

              JRadioButton jRadioButton2 = new JRadioButton("",false);

              jRadioButton2.setBounds(60, 80, 40, 20);

              buttonGroup.add(jRadioButton1);

              buttonGroup.add(jRadioButton2);

             

              JLabel jLabel5 = new JLabel("格言:");

              jLabel5.setBounds(190, 50, 30, 20);

              JTextArea jTextArea = new JTextArea(5,10);

              jTextArea.setBorder(BorderFactory.createMatteBorder (2,2,2,2, Color.blue));

              jTextArea.setLineWrap (true);//设置为禁止自动换行,初始值为false.

                jTextArea.setWrapStyleWord (true);

                jTextArea.setBackground (Color.white);//文本区背景

                jTextArea.setForeground (Color.red);//字体颜色

                jTextArea.setFont (new Font ("SansSerif", Font.PLAIN, 14));

                jTextArea.setText("天道酬勤");

 

              jTextArea.setBounds(230, 50, 120, 100);

             

              JLabel jLabel6 = new JLabel("权限:");

              jLabel6.setBounds(360, 50, 30, 20);

              Object[] privs = new Object[]{"增加用户","删除用户","修改用户","预览用户"};

              JList jList = new JList(privs);

              jList.setBounds(400, 50, 120, 100);

             

              JLabel jLabel7 = new JLabel("爱好:");

              jLabel7.setBounds(20, 160, 30, 20);

              JCheckBox jCheckBox = new JCheckBox("篮球");

              jCheckBox.setBounds(60, 160, 60, 20);

              JCheckBox jCheckBox2 = new JCheckBox("电影",true);

              jCheckBox2.setBounds(120, 160, 60, 20);

              JCheckBox jCheckBox3 = new JCheckBox("旅游");

              jCheckBox3.setBounds(180, 160, 60, 20);

             

              JLabel jLabel8 = new JLabel("颜色:");

              jLabel8.setBounds(350, 160, 30, 20);

              JColorChooser jColorChooser = new JColorChooser(Color.red);

              jColorChooser.setBounds(390, 160, 280, 300);

             

              JFileChooser jFileChooser = new JFileChooser();

              jFileChooser.setBounds(10, 180, 360, 280);

             

              ImageIcon icon = new ImageIcon(DemoPlainComponent.class.getResource("matthew.gif"));

              JLabel jLabel9 = new JLabel(icon);

              jLabel9.setBounds(10, 440, icon.getIconWidth(), icon.getIconHeight());

              jLabel9.setToolTipText("好有趣的孩子啊");

              JButton jButton = new JButton("登陆",icon);

              jButton.setBounds(200, 460, 200, 80);

             

              //将上面产生的控件放置在容器中

              contentPane.add(jLabel); 

              contentPane.add(jTextField);

              contentPane.add(jLabel2);

              contentPane.add(jPasswordField);

              contentPane.add(jLabel3);

              contentPane.add(jComboBox);

              contentPane.add(jLabel4);

              contentPane.add(jRadioButton1);

              contentPane.add(jRadioButton2);

              contentPane.add(jLabel5);

              contentPane.add(jTextArea);

              contentPane.add(jLabel6);

              contentPane.add(jList);

              contentPane.add(jLabel7);

              contentPane.add(jCheckBox);

              contentPane.add(jCheckBox2);

              contentPane.add(jCheckBox3);

              contentPane.add(jLabel8);

              contentPane.add(jColorChooser);

              contentPane.add(jFileChooser);

              contentPane.add(jLabel9);

              contentPane.add(jButton);

              //设置窗体可见

              jFrame.setVisible(true);

       }

}