swing控件的介绍(开始是一个程序演示)

package picture;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class UserJFrame extends JFrame implements ActionListener,ItemListener {
 private int number=1;                          //编号
 private JTextField text_number,text_name;      //编号,姓名文本行
 private JRadioButton radiobutton_male,radiobutton_female;   //性别按钮
 private JComboBox combobox_province,combobox_city;          //省份,城市组合框
 private JButton button_add;                                 //添加按钮
 private JTextArea text_user;                               //文本区
 
 public UserJFrame()
 {
  super("输入用户信息");
  this.setSize(360,200);
  this.setLocation(300,240);
  this.setDefaultCloseOperation(EXIT_ON_CLOSE);    //单击窗口关闭按钮时,结束程序的运行
  this.setLayout(new GridLayout(1,2));             //网格布局,1行2列,左右分隔窗口
  text_user=new JTextArea();                       //创建文本区
  this.add(text_user);                  //占据窗口左半部分
  JPanel panel=new JPanel(new GridLayout(6,1));      //面板网格布局,6行1列
  this.add(panel);                              //占据窗口的右半部分
  
  text_number=new JTextField("1");        //编号文本行
  text_number.setEditable(false);                //不可编辑,自动生成编号
  panel.add(text_number);
  text_name=new JTextField("姓名");
  panel.add(text_name);
  
  JPanel panel_radiobutton=new JPanel(new GridLayout(1,2));  //单选按钮子面板,网格
  panel.add(panel_radiobutton);
  ButtonGroup buttongroup=new ButtonGroup();      //按钮组
  radiobutton_male=new JRadioButton("男",true);
  buttongroup.add(radiobutton_male);                //单选按钮添加到按钮组
  panel_radiobutton.add(radiobutton_male);          //单选按钮添加到子面板
  
  radiobutton_female=new JRadioButton("女");
  buttongroup.add(radiobutton_female);
  panel_radiobutton.add(radiobutton_female);
  
  Object province[]={"江苏省","浙江省"};
  combobox_province=new JComboBox(province);     //省份组合框
  combobox_province.addItemListener(this);      //注册组合框的选择事件监听器
  panel.add(combobox_province);
  
  Object city[]={"南京市","苏州市","无锡市"};
  combobox_city=new JComboBox(city);
  panel.add(combobox_city);
  
  button_add=new JButton("添加");
  button_add.addActionListener(this);
  panel.add(button_add);
  this.setVisible(true);  
 }
 public void itemStateChanged(ItemEvent e)     //在组合框的下拉列表中选择数据项时触发执行
 {
  if(combobox_province.getSelectedIndex()==0)   //在省份组合框中选择了江苏省
  {
   combobox_city.removeAllItems();       //清除地区组合框中所有内容
   combobox_city.addItem("南京市");
   combobox_city.addItem("苏州市");
   combobox_city.addItem("无锡市");
  }
  if(combobox_province.getSelectedIndex()==1)   //在省份组合框中选择了浙江省
  {
   combobox_city.removeAllItems();
   combobox_city.addItem("杭州市");
   combobox_city.addItem("宁波市");
   combobox_city.addItem("温州市");
  }
 }
 public void actionPerformed(ActionEvent e)    //单击事件按钮触发执行
 {
  if(e.getSource()==button_add)
  {
   String aline="";
   aline=number+","+text_name.getText();
   if(radiobutton_male.isSelected())
    aline+=","+radiobutton_male.getText();     //获得单选按钮表示的性别字符串
   if(radiobutton_female.isSelected())
    aline+=","+radiobutton_female.getText();
   aline+=","+combobox_province.getSelectedItem();  //获得组合框选中数据项的字符串
   aline+=","+combobox_city.getSelectedItem();
   text_user.append(aline+"/n");      //文本区添加一行字符串
   
   
   this.number++;
   text_number.setText(""+this.number);
   text_name.setText("姓名 " );
  }
 }

 public static void main(String[] args) {
  new UserJFrame();

 }

}


/*
 * 程序详解:(知识详解,控件详解)
 */


/*JComboBox空间的介绍:
 * public class JComboBox extends JComponentimplements ItemSelectable, ListDataListener, ActionListener, Accessible
 * 1〉将按钮或可编辑字段与下拉列表组合的组件。用户可以从下拉列表中选择值,下拉列表在用户请求时显示。如果使组合框处于可编辑状态,
 *    则组合框将包括用户可在其中键入值的可编辑字段
 * 2〉JComboBox(Object[] items)    创建包含指定数组中的元素的 JComboBox。
 * 3〉public void addActionListener(ActionListener l)当作出选择时,ActionListener 将接收一个 ActionEvent。如果组合框可编辑,
 *    则在编辑停止时将触发 ActionEvent。   public void removeActionListener(ActionListener l)
 * 4〉public void addItem(Object anObject)为项列表添加项。仅当 JComboBox 使用可变数据模型时此方法才有效。
 * 5〉public void insertItemAt(Object anObject,int index)在项列表中的给定索引处插入项。仅当 JComboBox 使用可变数据模型时此方法才有效。
 * 6〉public void removeItem(Object anObject)从项列表中移除项。仅当 JComboBox 使用可变数据模型时此方法才有效。
 * 7> public void removeItemAt(int anIndex)移除 anIndex 处的项。仅当 JComboBox 使用可变数据模型时此方法才有效。
 * 8> public void removeAllItems()从项列表中移除所有项
 * 9> public void addItemListener(ItemListener aListener)当所选项更改时,aListener 将接收一个或两个 ItemEvent
 * 10> public void removeItemListener(ItemListener aListener)移除 ItemListener。
 * 11> public boolean selectWithKeyChar(char keyChar)如果存在与指定键盘字符相对应的项,则选择该列表项并返回 true。否则,返回 false。
 * 12>public int getItemCount()返回列表中的项数。
 * 13>public Object getItemAt(int index)返回指定索引处的列表项。如果 index 超出范围(小于零或者大于等于列表大小),则返回 null。
 * 14>protected String paramString()返回此 JComboBox 的字符串表示形式。此方法仅在进行调试时使用,对于各个实现,
 *    所返回字符串的内容和格式可能有所不同。返回的字符串可以为空,但不可以为 null
 */

/*Serializable接口的介绍:
 * public interface Serializable
 * 类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。
 * 可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
 */

/*JCheckBox
 * public class JCheckBox extends JToggleButtonimplements Accessible
 *构造方法:
 * JCheckBox()           创建一个没有文本、没有图标并且最初未被选定的复选框。
   JCheckBox(Action a)           创建一个复选框,其属性从所提供的 Action 获取。
   JCheckBox(Icon icon)           创建有一个图标、最初未被选定的复选框。
   JCheckBox(Icon icon, boolean selected)           创建一个带图标的复选框,并指定其最初是否处于选定状态。
   JCheckBox(String text)           创建一个带文本的、最初未被选定的复选框。
   JCheckBox(String text, boolean selected)           创建一个带文本的复选框,并指定其最初是否处于选定状态。
   JCheckBox(String text, Icon icon)           创建带有指定文本和图标的、最初未选定的复选框。
   JCheckBox(String text, Icon icon, boolean selected)           创建一个带文本和图标的复选框,并指定其最初是否处于选定状态。
*  
*/

/*JRadioButton
 * public class JRadioButton extends JToggleButtonimplements Accessible
 * 构造方法:
 * JRadioButton()           创建一个初始化为未选择的单选按钮,其文本未设定。
   JRadioButton(Action a)           创建一个单选按钮,其属性来自提供的 Action。
   JRadioButton(Icon icon)           创建一个初始化为未选择的单选按钮,其具有指定的图像但无文本。
  JRadioButton(Icon icon, boolean selected)           创建一个具有指定图像和选择状态的单选按钮,但无文本。
   JRadioButton(String text)           创建一个具有指定文本的状态为未选择的单选按钮。
   JRadioButton(String text, boolean selected)           创建一个具有指定文本和选择状态的单选按钮。
   JRadioButton(String text, Icon icon)           创建一个具有指定的文本和图像并初始化为未选择的单选按钮。
   JRadioButton(String text, Icon icon, boolean selected)           创建一个具有指定的文本、图像和选择状态的单选按钮。
 *
 */

/*JButton
 * public class JButton extends AbstractButtonimplements Accessible
 * 构造方法摘要
   JButton()           创建不带有设置文本或图标的按钮。
   JButton(Action a)           创建一个按钮,其属性从所提供的 Action 中获取。
   JButton(Icon icon)           创建一个带图标的按钮。
   JButton(String text)           创建一个带文本的按钮。
   JButton(String text, Icon icon)           创建一个带初始文本和图标的按钮。
 *
 *
 *
 *  Button
 *  public class Button extends Componentimplements Accessible
 *  构造方法摘要
 *  Button()           构造一个标签字符串为空的按钮。
    Button(String label)           构造一个带指定标签的按钮。
 *  1〉 public void addActionListener(ActionListener l)添加指定的动作侦听器,以接收发自此按钮的动作事件。
 *      当用户在此按钮上按下或释放鼠标时,发生动作事件。如果 l 为 null,则不抛出任何异常,也不执行任何动作。
 *  2〉 public void removeActionListener(ActionListener l)
 *  3〉 public ActionListener[] getActionListeners()返回在此按钮上注册的所有动作侦听器的一个数组。
 *  4〉 public void setLabel(String label)将按钮的标签设置为指定的字符串。
 *  5〉 public void setActionCommand(String command)设置此按钮激发的动作事件的命令名称。在默认情况下,此动作命令设置为与按钮标签相匹配。
 *  6〉 public String getActionCommand()返回此按钮激发的动作事件的命令名称。如果命令名称为 null(默认),则此方法返回按钮的标签。
 */

/*JLabel
 * public class JLabel extends JComponentimplements SwingConstants, Accessible
 * 构造方法摘要
   JLabel()           创建无图像并且其标题为空字符串的 JLabel。
   JLabel(Icon image)           创建具有指定图像的 JLabel 实例。
   JLabel(Icon image, int horizontalAlignment)           创建具有指定图像和水平对齐方式的 JLabel 实例。
   JLabel(String text)           创建具有指定文本的 JLabel 实例。
   JLabel(String text, Icon icon, int horizontalAlignment)           创建具有指定文本、图像和水平对齐方式的 JLabel 实例。
   JLabel(String text, int horizontalAlignment)           创建具有指定文本和水平对齐方式的 JLabel 实例。
 *1〉 public String getText()返回该标签所显示的文本字符串。
 *2〉 public void setText(String text)定义此组件将要显示的单行文本。如果 text 值为 null 或空字符串,则什么也不显示。
 *3〉 public Icon getIcon()返回该标签显示的图形图像(字形、图标)。
 *4〉 public void setIcon(Icon icon)定义此组件将要显示的图标。如果 icon 值为 null,则什么也不显示。
 *5〉 public int getIconTextGap()返回此标签中显示的文本和图标之间的间隔量。
 *6〉 public void setVerticalAlignment(int alignment)设置标签内容沿 Y 轴的对齐方式。
 *7〉 public void setHorizontalAlignment(int alignment)设置标签内容沿 X 轴的对齐方式。
 */


/*JTextField
 *  public class JTextField extends JTextComponentimplements SwingConstants
 *  构造方法摘要
    JTextField()           构造一个新的 TextField。
    JTextField(Document doc, String text, int columns)           构造一个新的 JTextField,它使用给定文本存储模型和给定的列数。
    JTextField(int columns)           构造一个具有指定列数的新的空 TextField。
    JTextField(String text)           构造一个用指定文本初始化的新 TextField。
    JTextField(String text, int columns)           构造一个用指定文本和列初始化的新 TextField。
    1〉public int getColumns()返回此 TextField 中的列数。
    2〉public void setColumns(int columns)设置此 TextField 中的列数,然后验证布局。
    3〉public void setFont(Font f)设置当前字体。这将移除缓存的行高和列宽,以便新的字体能够反映出来,设置字体后将调用 revalidate。
    4〉public void addActionListener(ActionListener l)添加指定的操作侦听器以从此文本字段接收操作事件。
    5〉public void removeActionListener(ActionListener l)移除指定的操作侦听器,以便不再从此文本字段接收操作事件。
    6〉public void setActionCommand(String command)设置用于操作事件的命令字符串。
    7〉public void setScrollOffset(int scrollOffset)获取滚动偏移量(以像素为单位)。 
*/

/*JTextArea
 * public class JTextArea extends JTextComponent
 * 构造方法摘要
   JTextArea()           构造新的 TextArea。
   JTextArea(Document doc)           构造新的 JTextArea,使其具有给定的文档模型,所有其他参数均默认为 (null, 0, 0)。
   JTextArea(Document doc, String text, int rows, int columns)           构造具有指定行数和列数以及给定模型的新的 JTextArea。
   JTextArea(int rows, int columns)           构造具有指定行数和列数的新的空 TextArea。
   JTextArea(String text)           构造显示指定文本的新的 TextArea。
   JTextArea(String text, int rows, int columns)           构造具有指定文本、行数和列数的新的 TextArea。
  *1〉public int getLineCount()确定文本区中所包含的行数。
  *2〉public void insert(String str,int pos)将指定文本插入指定位置。如果模型为 null 或者文本为 null 或空,则不执行任何操作。
  *3〉public void append(String str)将给定文本追加到文档结尾。如果模型为 null 或者字符串为 null 或空,则不执行任何操作。
  *4〉public void replaceRange(String str, int start, int end)用给定的新文本替换从指示的起始位置到结尾位置的文本。如果模型为 null,
  *   则不执行任何操作。如果新字符串为 null 或为空,则只执行简单的删除操作。
  *5〉public int getRows()返回 TextArea 中的行数
  *6〉public void setRows(int rows)设置此 TextArea 的行数。设置新值之后调用 invalidate()。
  *7〉public void setFont(Font f)设置当前字体。这将移除缓存的行高和列宽,以便新的字体能够反映出来,并且调用 revalidate()。
  
 */


/*JList
 * public class JList extends JComponentimplements Scrollable, Accessible
 * 构造方法摘要
   JList()           构造一个具有空的、只读模型的 JList。
   JList(ListModel dataModel)           根据指定的非 null 模型构造一个显示元素的 JList。
   JList(Object[] listData)           构造一个 JList,使其显示指定数组中的元素。
   JList(Vector<?> listData)           构造一个 JList,使其显示指定 Vector 中的元素。
 * 1〉public int getNextMatch(String prefix,int startIndex,Position.Bias bias)返回其 toString 值以给定前缀开头的下一个列表元素。
 * 2〉public void addListSelectionListener(ListSelectionListener listener)将侦听器添加到列表,每次选择发生更改时将获得通知;这是侦听选择状态更改的首选方式。
 *    JList 负责侦听选择模型中选择状态更改,并通知每个更改的给定侦听器。发送到侦听器的 ListSelectionEvent 具有设置为此列表的 source 属性。
 * 3〉public void removeListSelectionListener(ListSelectionListener listener)  
 */
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值