和风细雨

世上本无难事,心以为难,斯乃真难。苟不存一难之见于心,则运用之术自出。

Swing常用组件

面板类JPanel

JPanel类常用来作为一批组件如JButton,JTextBox等的容器,一般来说对它的常见操作有设置其边框,设置其布局等.

设置边框代码:
setBorder(BorderFactory.createTitledBorder(title));

设置布局代码示例:
setLayout(new GridLayout(4, 1));
add(nameInputPanel);
add(ageInputPanel);
add(titleInputPanel);
add(ButtonsPanel);

按钮类JButton

当我们需要向界面添加按钮时需要用到JButton类.以下是它的一些常用方法

1.创建Button类实例
JButton csvButton=new JButton("csv下载");

2.设置按钮的最大尺寸,最小尺寸,首选尺寸.
Dimension dimension = new Dimension(80, 20);
csvButton.setMaximumSize(dimension);
csvButton.setMinimumSize(dimension);
csvButton.setPreferredSize(dimension);

单选框JRadioButton

我们需要单选按钮时需要用到JRadioButton,它的常用方法如下:
1.创建
JRadioButton xmlRadio=new JRadioButton("Xml",true);
JRadioButton db4oRadio=new JRadioButton("Db4o",false);

2.分组
ButtonGroup group = new ButtonGroup();
group.add(xmlRadio);
group.add(db4oRadio);
group.add(sqlRadio);
group.add(hibenateRadio);

3.取得单个JRadioButton是否被选择
boolean isSelected=db4oRadio.isSelected()

4.取得一组JRadioButton中被选择的单元的文字
        for (Enumeration e=group.getElements(); e.hasMoreElements(); ) {
            JRadioButton b = (JRadioButton)e.nextElement();
            if (b.getModel() == group.getSelection()) {
                return b.getText();
            }
        }

标签组件JLabel

JLabel是标签控件,也是Swing组件中最简单常用的一个.

创建JLabel:
JLabel label=new JLabel(“ABC");

修改标签文字
label.setText("DEF");

单行文本框JTextField

需要输入单行文字时我们可以用到JTextField,它的使用也很简单.
创建:
JTextField textBox=new JTextField();

设置文本框文字:
textBox.setText("ABC");

取得文本框文字:
String text=textBox.getText();

复合框JComboBox

JComboBox是既能提供输入又能提供选择一项的选择控件.

1) 创建JComboBox
String[] items = {"item1", "item2"};
JComboBox editableCB = new JComboBox(items); editableCB.setEditable(true);

表格控件JTable

表格控件是相对复杂的Swing控件之一,使用也相对复杂.

1) 创建表格控件
JTable table = new JTable();

2) 设置表格行高
table.setRowHeight(20);

3) 设置表格的行数和列数
DefaultTableModel tableModel = (DefaultTableModel) table
.getModel();
tableModel.setColumnCount(0);
tableModel.setRowCount(0);

4) 给表格添加表头
String[] headers = {"姓名","年龄", "职务"};

for (int i = 0; i < headers.length; i++) {
      tableModel.addColumn(headers[i]);
}

5) 向表格添加内容
 public void fillTable(List<Member> members){
    DefaultTableModel tableModel = (DefaultTableModel) table
    .getModel();
    tableModel.setRowCount(0);
   
    for(Member member:members){
      String[] arr=new String[5];
      arr[0]=member.getName();
      arr[1]=member.getAge();
      arr[2]=member.getTitle();
     
      tableModel.addRow(arr);
    }
   
    table.invalidate();
  }

6) 取得表格内的内容
public List<Member> getShowMembers(){
    List<Member> members=new ArrayList<Member>();
   
    DefaultTableModel tableModel = (DefaultTableModel) table
    .getModel();
   
    int rowCount=tableModel.getRowCount();
   
    for(int i=0;i<rowCount;i++){
      Member member=new Member();
      member.setName((String)tableModel.getValueAt(i, 0));
      member.setAge((String)tableModel.getValueAt(i, 1));
      member.setTitle((String)tableModel.getValueAt(i, 2));
     
      members.add(member);
    }
   
    return members;
  }


 

posted on 2008-03-03 22:42 和风细雨 阅读(1170) 评论(0)  编辑  收藏 所属分类: Swing


只有注册用户登录后才能发表评论。


网站导航: