class DiaObj implements ActionListener { Frame fr=new Frame();
TextArea txtAr2=new TextArea(8,10); TextField txtFl=new TextField(20);
Button btnSend=new Button(\发送文字\ Dialog dia;
//初始化DiaObj,并定义参数fr,txtAr2 public DiaObj(Frame fr,TextArea txtAr2){ this.txtAr2=txtAr2; this.fr=fr; dia=new Dialog(fr,\传递消息对话框..\ dia.setSize(200,100); dia.setLayout(new FlowLayout()); dia.add(txtFl); dia.add(btnSend); btnSend.addActionListener(this); dia.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ dia.setVisible(false); //退出对话框 }} ); dia.validate(); dia.setVisible(true); }
public void actionPerformed(ActionEvent e){ txtAr2.append(txtFl.getText()+\ txtFl.setText(\清空内容 } }
第5章 Java swing基础
【1】 应用swing 组件,改写【例4-4】的密码验证程序。 [解答]:
import javax.swing.*; import java.awt.*;
import java.awt.event.*;
36
public class XitiDaan5_1 extends JFrame implements ActionListener{ JLabel jl;
JTextField jt2; JPanel jp; TextField t1; JButton jb; XitiDaan5_1(){
super(\密码验证\ setSize(800,600); setVisible(true);
Container con=getContentPane(); con.setLayout(new BorderLayout()); jp=new JPanel();
jl=new JLabel(\请输入密码:\ t1=new TextField(25); t1.setEchoChar('*'); jt2=new JTextField(25); jb=new JButton(\确定\ jp.add(jl); jp.add(t1); jp.add(jb); jp.add(jt2);
con.add(jp,BorderLayout.CENTER); jb.addActionListener(this); validate(); }
public void actionPerformed(ActionEvent e){ if(t1.getText().equals(\ jt2.setText(\密码正确!!\ else
jt2.setText(\密码错误!!\ }
public static void main(String[] args){ new XitiDaan5_1(); } }
程序运行结果如图5.1所示。
37
图5.1
【2】将通讯录显示到一个表格中。 [解答]:
// 将通讯录显示到表格 import javax.swing.*; import java.awt.*;
import java.awt.event.*;
class Tongxunlu_Table extends JFrame {
public Tongxunlu_Table() {
super(\班级通讯录\
String[] columnNames = {\姓名\性别\班级\固定电话\手机\地址\ Object[][] data = {
{\张 三\男\泉州\ {\李 四\男\南安\ {\王 五\男\泉州\ {\张 也\女\福州\ {\李 名\男\泉州\ {\张 涛\男\厦门\ {\章 萍\女\泉州\ {\谢少福\男\漳州\ {\黄志强\男\泉州\ {\张志晨\男\龙岩\ {\张明美\女\莆田\ };
38
JTable table = new JTable(data,columnNames);
table.setPreferredScrollableViewportSize(new Dimension(500,70)); JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); pack();
setSize(800,600); setVisible(true); } }
//主类
public class Xitidaan5_2 {
public static void main(String[] args) {
Tongxunlu_Table frame = new Tongxunlu_Table(); } }
程序运行结果如图5.2所示。
图5.2
【3】 改进【例5-11】,编写一个能动态改变树结点的程序。 [解答]:
/* \利用TreeNode构造动态树\import javax.swing.*; import javax.swing.tree.*; import java.awt.*;
import java.awt.event.*;
39
import java.awt.GridLayout; import java.awt.Toolkit; import javax.swing.JLabel; import javax.swing.JPanel;
import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel; import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener;
class TreeNodeChild extends DefaultMutableTreeNode{ JPanel Parent ;
JRadioButton PartRadio ; JLabel PartLabel ;
public TreeNodeChild(String Node){ Parent = new JPanel();
PartRadio = new JRadioButton(); PartLabel = new JLabel(); PartLabel.setText(Node); Parent.add(PartRadio); Parent.add(PartLabel); } }
class DynamicTree extends JPanel { TreeNodeChild rootNode; DefaultTreeModel treeModel; JTree tree;
Toolkit toolkit = Toolkit.getDefaultToolkit(); DynamicTree(){
super(new GridLayout(1,0));
TreeNodeChild rootNode = new TreeNodeChild(\ Node\ treeModel = new DefaultTreeModel(rootNode);
treeModel.addTreeModelListener(new MyTreeModelListener());
tree = new JTree(treeModel); tree.setEditable(true);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setShowsRootHandles(true);
40
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java语言程序设计习题答案(清华大学出版杜)张思民版-1-12章答案(8)在线全文阅读。
相关推荐: