基本组件
JButton 为轻量级组件,对应着button组件类。
Jlabel为轻量级标签组件,对应着label组件类。
Jcheckbox为轻量级复选框,对应checkbox类。
jradiobutton为轻量级单选框,需要添加在
buttongroup组中。
jradiobutton jmale=new jradiobutton("男");
jradiobutton jfemale=new jradiobutton("女");
group.add(jmale);
group.add(jfemale);
jcomobox对应choice组件,但是添加项的方法不同,使用的additem方法,例如
jcombobox cmbjob=new jcombobox();
cmbjob.additem("aaaa");
cmbjob.additem("bbbb");
cmbjob.additem("cccc");
cmbjob.additem("dddd");
jtextfield组件为对单行文本进行编辑的轻量级组件,对应textfield类。
jtextarea组件用于在多行区域中显示春文本并进行编辑。
jpanel为轻量级面板控件,对应原来的panel类。
japplet类继承自applet类
jtable
jtable是用于显示和编辑的两维表单元。它的构造函数和常用方法为:
public jtable()
构造一个空的Jtable对象。
public void setModet(tableModel datamodel)
为表对象设置数据模型datamodel,并将数据模型进行注册。
defaulttablemodel是一个实现模型,使用一系列vector对象实现表单元数据的填充。它的构造
函数和常用的方法为:
public defaulttablemodel()
构造函数
public void addcolumn(object columname)
添加一列标题
public void addRow(vector rowData)
在模型对象的末尾添加一行vector对象的数据。
构造jtable对象的步骤如下;
1>构造一个空jtable对象
jtable tblinf=new jtable();
2>构造defaulttablemodel对象,用setModel方
法将此对象绑定到jtable上。
defaulttablemodel dtm=new defaulttablemodel();
3>具体实现defaulttablemodel对象(addcolomn方法实现列标题设置,addrow方法实现数据添加)。
(1)初始化vector列表,添加列标题
Vector vcdata=new Vector();
vcdata.add("姓名:");
vcdata.add("身份证号:");
vcdata.add("性别:");
tblInf.setModel(dtm);
for(int i=0;i<vcdata.size();i++){
dtm.addColumn((String)
vcdata.elementAt(i));
}
(2)初始化vector列表,添加列数据
Vector vrdata=new Vector();
vrdata.add("王飞:");
vrdata.add("122432546547655865");
vrdata.add("男");
dtm.addRow(vrdata);
(3)jtable没有内嵌滚动条功能,将之放入jscrollpane对象中并进行显示。
jscrollpane s=new jscrollpane(tblinf);
getcontentpane().add(s,borderlayout.center);
jtree
jtree控件用于显示一系列分层数据,即树状显示。
它的构造函数和常用方法为:
public void setModel(TreeModel newModel)
设置及提供数据的TreeModel模型,TreeModel是一个接口,接口内实现的类为DefaultModel类,defaulttreemodel是一个使用treenodes的简单树数据模型,下面给出它的构造函数。
public defaulttreemodel(treenode root)
创建根结点为root的树,其中每个结点都可以有子节点。treenode是一个接口,它包含一个defaulttreenode类,defaulttreenode类表达了一个树形数据结构中具有一般意义的结点。每个树结点至多有一个父节点,0个或多个子节点。其构造函数为:
public defaultmutabletreenode(object userobject)
创建一个无父结点,无子结点的树结点。
public add(mutabletreenode newchild)
将newchild结点添加到树结点的末尾,使之称为当前结点的子结点。
创建树结构的步骤如下:
1》构建JTree对象
JTree tree=new JTree();
2》构造defaultmutabletreenode对象,使用
setmodel方法将defaultmutabletreenode对象绑定到Jtree对象。
tree.setModel(new DefaultTreeModel(root));
3》构造树。
1)构造根结点。
defaultmutabletreenode root;
2)构造分支结点,添加到根结点。
DefaultMutableTreeNode nodename,nodenumber,nodesex;
root=new DefaultMutableTreeNode("个人信息");
nodename=new DefaultMutableTreeNode("姓名");
nodenumber=new DefaultMutableTreeNode("身份证号");
nodesex=new DefaultMutableTreeNode("性别");
root.add(nodename);
root.add(nodenumber);
root.add(nodesex);
3)添加叶子结点并添加到分支结点。
leafname=new DefaultMutableTreeNode("王飞");
leafnumber=new DefaultMutableTreeNode("1324353464645754");
leafsex=new DefaultMutableTreeNode("男");
nodename.add(leafname);
nodenumber.add(leafnumber);
nodesex.add(leafsex);
4)使用DefaultMutableTreeModel的构造函数,将根结点作为参数构造树结构中的数据。
DefaultTreeModel dTree=new DefaultTreeModel(root);
5)JTree没有内嵌的滚动条属性,较大的树状结构可以显示在JScrollbar上。
JScrollbar scroll=new JScrollbar(tree);
getContentPane().add(scroll);
程序例子:测试java.swring包
//程序名字为Test.java
import java.awt.*;
import java.util.Vector;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.plaf.basic.DefaultMenuLayout;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeSelectionModel;
public class Test extends JFrame{
JLabel lblName=new JLabel("姓名:");
JLabel lblNumber=new JLabel("身份证号:");
JLabel lblSex=new JLabel("性别:");
JLabel lblJob=new JLabel("职业:");
JLabel lblText=new JLabel("个性化宣言:");
JTextField tfName=new JTextField(23);
JTextField tfNumber=new
JTextField(20);
JTextArea taText=new JTextArea(5,20);
JRadioButton jMale=new
JRadioButton("男");
JRadioButton jFemale=new JRadioButton("女");
ButtonGroup group=new ButtonGroup();
JComboBox cmbJob = new JComboBox();
JButton btnok=new JButton("确定");
JButton btnDisplay=new JButton("取消");
JTable tblInf=new JTable();
DefaultTableModel dtm=new DefaultTableModel();//布局设置
JTree tree=new JTree();
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();
JPanel p5=new JPanel();
JPanel p6=new JPanel();
JPanel p7=new JPanel(new BorderLayout());
JPanel p8=new JPanel();
JPanel p9=new JPanel(new BorderLayout());
public Test()
{
group.add(jMale);
group.add(jFemale);
cmbJob.addItem("计算机业");
cmbJob.addItem("医生");
cmbJob.addItem("教师");
cmbJob.addItem("军队");
p1.add(lblName);
p1.add(tfName);
p2.add(lblNumber);
p2.add(tfNumber);
p3.add(lblSex);
p3.add(jMale);
p4.add(lblJob);
p4.add(cmbJob);
p5.add(p3);
p5.add(p3);
p6.setLayout(new BorderLayout());
p6.add(p1, BorderLayout.NORTH);
p6.add(p2, BorderLayout.CENTER);
p6.add(p5, BorderLayout.SOUTH);
p7.add(lblText,BorderLayout.NORTH);
p7.add(taText,BorderLayout.CENTER);
p8.setLayout(new FlowLayout(FlowLayout.CENTER,30,10));
p8.add(btnok);
p8.add(btnDisplay);
p9.add(p6,BorderLayout.NORTH);
p9.add(p7,BorderLayout.CENTER);
p9.add(p8,BorderLayout.SOUTH);
//调用设置表的方法
setTable();
//调用设置树的方法
setTree();
getContentPane().add(p9,BorderLayout.NORTH);
JScrollPane s=new JScrollPane();
getContentPane().add(s,BorderLayout.CENTER);
getContentPane().add(tree,BorderLayout.SOUTH);
}
//设置表,用Vector辅助添加
public void setTable() {
Vector vcdata=new Vector();
vcdata.add("姓名:");
vcdata.add("身份证号:");
vcdata.add("性别:");
tblInf.setModel(dtm);
for(int i=0;i<vcdata.size();i++){
dtm.addColumn((String)
vcdata.elementAt(i));
Vector vrdata=new
Vector();
vrdata.add("王飞:");
vrdata.add("122432546547655865");
vrdata.add("男");
dtm.addRow(vrdata);
}
}
//设置树
public void setTree() {
DefaultMutableTreeNode root;
DefaultMutableTreeNode leafname,leafnumber,leafsex;
DefaultMutableTreeNode nodename,nodenumber,nodesex;
root=new DefaultMutableTreeNode("个人信息");
nodename=new DefaultMutableTreeNode("姓名");
nodenumber=new DefaultMutableTreeNode("身份证号");
nodesex=new DefaultMutableTreeNode("性别");
leafname=new DefaultMutableTreeNode("王飞");
leafnumber=new DefaultMutableTreeNode("1324353464645754");
leafsex=new DefaultMutableTreeNode("男");
root.add(nodename);
root.add(nodenumber);
root.add(nodesex);
nodename.add(leafname);
nodenumber.add(leafnumber);
nodesex.add(leafsex);
//设置tree渲染的基本属性
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.setShowsRootHandles(true);
//树不可编辑
tree.setEditable(false);
tree.setModel(new
DefaultTreeModel(root));
}
public static void main(String[] args) {
Test ts=new Test();
ts.setSize(400, 450);
ts.show();
}
}