第十七章JavaSwing基础
例子1
importjavax.swing.;
importjava.awt.;
importjava.awt.event.;
classMywindowextendsJFrame
{JButtonbutton;
JTextAreatext;
Mywindow()
{setExtendedState(Frame.MAXIMIZED_BOTH);//窗口最大化
setVisible(true);
Containercon=getContentPane();
con.setLayout(newFlowLayout());
button=newJButton("ok");
text=newJTextArea(10,20);
con.add(button);
con.add(text);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
publicclassExample17_1
{publicstaticvoidmain(Stringargs[])
{Mywindowwin=newMywindow();
}
}
例子2
importjavax.swing.;
importjava.awt.;
importjava.awt.event.;
publicclassExample17_2
{publicstaticvoidmain(Stringargs[])
{Mywindowwin=newMywindow();
win.validate();
}
}
classMywindowextendsJFrame
{JButtonbutton1,button2;
JTextAreatext;
JScrollPanescroll;
JInternalFrameinterframe;
JSplitPanesplitOne,splitTwo;
Mywindow()
{setSize(300,300);
setVisible(true);
Containercon=getContentPane();
con.setLayout(newGridLayout(1,2));
button1=newJButton("button1");
button2=newJButton("button2");
text=newJTextArea(6,12);
scroll=newJScrollPane(text);
splitOne=newJSplitPane(JSplitPane.VERTICAL_SPLIT,true,button1,button2);
splitTwo=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitOne,scroll);
interframe=newJInternalFrame("内部窗体",true,true,true,true);
interframe.setSize(200,200);
interframe.setVisible(true);
ContainerinterCon=interframe.getContentPane();
interCon.setLayout(newFlowLayout());
interCon.add(splitTwo);
JDesktopPanedesk=newJDesktopPane();
desk.add(interframe);
getContentPane().add(desk);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
例子3
importjavax.swing.;
importjava.awt.event.;
importjava.awt.;
publicclassExample17_3
{publicstaticvoidmain(Stringargs[])
{GoodWindowwin=newGoodWindow();
}
}
classGoodWindowextendsJFrame
implementsItemListener
{JComboBoxlist;
JButtonbutton;
JRadioButtonradiobutton1,
radiobutton2;
ButtonGroupfruit;
JCheckBoxbox1,box2;
IconiconYes,iconNo;
GoodWindow()
{setSize(500,370);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
iconYes=newImageIcon("yes.gif");
iconNo=newImageIcon("no.gif");
list=newJComboBox();
list.addItem("cat.gif");
list.addItem("dog.gif");
list.addItemListener(this);
Containercon=getContentPane();
con.setLayout(newFlowLayout());
con.add(list);
button=newJButton(newImageIcon("cat.gif"));
box1=newJCheckBox("未选中");
box2=newJCheckBox("选中",iconYes,true);
box2.setSelectedIcon(iconYes);
box1.addItemListener(this);
box2.addItemListener(this);
fruit=newButtonGroup();
radiobutton1=newJRadioButton("苹果");
radiobutton2=newJRadioButton("香蕉");
fruit.add(radiobutton1);
fruit.add(radiobutton2);
con.setLayout(newFlowLayout());
con.add(list);
con.add(box1);
con.add(box2);
con.add(radiobutton1);
con.add(radiobutton2);
con.add(button);
con.validate();
validate();
}
publicvoiditemStateChanged(ItemEvente)
{if(e.getSource()==box1)
{if(box1.isSelected())
box1.setText("选中");
else
box1.setText("未选中");
}
if(e.getSource()==box2)
{if(box2.isSelected())
{box2.setText("选中");
}
else
{box2.setText("未选中");
box2.setIcon(iconNo);
}
}
if(e.getSource()==list)
{Stringname=(String)list.getSelectedItem();
button.setIcon(newImageIcon(name));
}
}
}
例子4
importjavax.swing.;
importjavax.swing.text.;
importjava.awt.event.;
importjava.awt.;
publicclassExample17_4
{publicstaticvoidmain(Stringargs[])
{newWin();
}
}
classDigitDocumnetextendsPlainDocument
{intcount=1;
publicvoidinsertString(intoffset,Strings,AttributeSeta)
{charc=s.charAt(0);
if(c<=''9''&&c>=''0''&&count<=8)
{try{super.insertString(offset,s,a);
count++;
}
catch(BadLocationExceptione){}
}
}
publicvoidremove(intoffset,intlength)
{try
{super.remove(offset,length);
count--;
}
catch(BadLocationExceptione){}
}
}
classWinextendsJFrame
{JTextFieldtext;
DigitDocumnetdocument;
publicWin()
{setBounds(100,100,300,200);
setVisible(true);
text=newJTextField(20);
Containercon=getContentPane();
con.setLayout(newFlowLayout());
document=newDigitDocumnet();
text.setDocument(document);
con.add(text);
text.requestFocus();
con.validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
例子5
importjava.awt.;importjava.awt.event.;
importjava.util.;importjavax.swing.;
importjavax.swing.event.;
publicclassExample17_5
{publicstaticvoidmain(Stringargs[])
{WindowTextAreawin=newWindowTextArea();
}
}
classWindowTextAreaextendsJFrameimplementsDocumentListener,ActionListener
{JTextAreatext1,text2;
JMenuBarmenubar;
JMenumenu;
JMenuItemitemCopy,itemCut,itemPaste;
WindowTextArea()
{menubar=newJMenuBar();
menu=newJMenu("编辑");
itemCopy=newJMenuItem("复制");
itemCut=newJMenuItem("剪切");
itemPaste=newJMenuItem("粘贴");
menu.add(itemCopy);
menu.add(itemCut);
menu.add(itemPaste);
menubar.add(menu);
setJMenuBar(menubar);
text1=newJTextArea(6,15);
text2=newJTextArea(6,15);
(text1.getDocument()).addDocumentListener(this);//向文档注册监视器
itemCopy.addActionListener(this);
itemCut.addActionListener(this);
itemPaste.addActionListener(this);
setBounds(100,100,450,300);
setVisible(true);
Containercon=getContentPane();
con.setLayout(newFlowLayout());
con.add(newJScrollPane(text1));
con.add(newJScrollPane(text2));
con.validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidchangedUpdate(DocumentEvente)//接口方法。
{Strings=text1.getText();
StringTokenizerfenxi=newStringTokenizer(s,",''\n''");
intn=fenxi.countTokens();
Stringa[]=newString[n];
for(inti=0;i<=n-1;i++)
{Stringtemp=fenxi.nextToken();
a[i]=temp;
}
Arrays.sort(a);//按字典序从小到大排序。
text2.setText(null);//刷新显示。
for(inti=0;i {text2.append(a[i]+"\n");
}
}
publicvoidremoveUpdate(DocumentEvente)//接口方法。
{changedUpdate(e);
}
publicvoidinsertUpdate(DocumentEvente)//接口方法。
{changedUpdate(e);
}
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==itemCopy)
text2.copy();
elseif(e.getSource()==itemCut)
text2.cut();
elseif(e.getSource()==itemPaste)
text1.paste();
}
}
例子6
importjavax.swing.;
importjava.io.;
publicclassExample17_6
{publicstaticvoidmain(Stringargs[])
{JFileChooserchooser=newJFileChooser();
intstate=chooser.showOpenDialog(null);
Filefile=chooser.getSelectedFile();
if(file!=null&&state==JFileChooser.APPROVE_OPTION)
{try{FileInputStreamin=newFileInputStream(file);
byteb[]=newbyte[1024];
intn=-1;
while((n=in.read(b))!=-1)
{Stringstr=newString(b,0,n);
System.out.print(str);
}
}
catch(IOExceptione1){}
}
}
}
例子7
importjavax.swing.;
importjava.awt.;
publicclassExample17_7
{publicstaticvoidmain(Stringargs[])
{BarWinwin=newBarWin();
win.thread1.start();
win.thread2.start();
}
}
classBarWinextendsJFrameimplementsRunnable
{JProgressBarpbar1,pbar2;
Threadthread1,thread2;
JTextFieldtext1,text2;
BarWin()
{pbar1=newJProgressBar(0,100);
pbar2=newJProgressBar(0,100);
pbar1.setStringPainted(true);
pbar2.setStringPainted(true);
text1=newJTextField(10);
text2=newJTextField(10);
thread1=newThread(this);
thread2=newThread(this);
Containercon=getContentPane();
con.setLayout(newFlowLayout());
con.add(pbar1);
con.add(text1);
con.add(pbar2);
con.add(text2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(10,10,300,300);
setVisible(true);
validate();
}
publicvoidrun()
{if(Thread.currentThread()==thread1)
{for(inti=1;i<=100;i++)
{text1.setText("第"+i+"项="+f(i));
pbar1.setValue(i);
try{Thread.sleep(500);
}
catch(InterruptedExceptione){}
}
}
if(Thread.currentThread()==thread2)
{longa1=1,a2=1,a=a1;
inti=1;
while(i<=100)
{if(i>=3)
{a=a1+a2;
a1=a2;
a2=a;
}
text2.setText("第"+i+"项="+a);
pbar2.setValue(i);
i++;
try{Thread.sleep(500);
}
catch(InterruptedExceptione){}
}
}
}
longf(intn)
{longc=0;
if(n==1||n==2)
c=1;
elseif(n>1)
c=f(n-1)+f(n-2);
returnc;
}
}
例子8
importjavax.swing.;importjava.awt.;
importjava.awt.event.;
publicclassExample17_8
{publicstaticvoidmain(Stringargs[])
{WinTableWin=newWinTable();
}
}
classWinTableextendsJFrameimplementsActionListener
{JTabletable;Objecta[][];
Objectname[]={"姓名","英语成绩","数学成绩","总成绩"};
JButtonbutton;
WinTable()
{a=newObject[8][4];
for(inti=0;i<8;i++)
{for(intj=0;j<4;j++)
{if(j!=0)
a[i][j]="0";
else
a[i][j]="姓名";
}
}
button=newJButton("计算每人总成绩");
table=newJTable(a,name);
button.addActionListener(this);
Containercon=getContentPane();
getContentPane().add(newJScrollPane(table),BorderLayout.CENTER);
con.add(newJLabel("修改或录入数据后,需回车确认"),BorderLayout.SOUTH);
con.add(button,BorderLayout.SOUTH);
setSize(200,200);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEvente)
{for(inti=0;i<8;i++)
{doublesum=0;
booleanboo=true;
for(intj=1;j<=2;j++)
{try{sum=sum+Double.parseDouble(a[i][j].toString());
}
catch(Exceptionee)
{boo=false;
table.repaint();
}
if(boo==true)
{a[i][3]=""+sum;
table.repaint();
}
}
}
}
}
例子9
importjavax.swing.;
importjava.awt.event.;
importjava.awt.;
publicclassExample17_9
{publicstaticvoidmain(Stringargs[])
{WindowMenuwin=newWindowMenu();
}
}
classWindowMenuextendsJFrame
implementsActionListener
{JMenuBarmenubar;
JMenumenu;
JMenuItemitemCat,itemDog;
JLabellabel;
WindowMenu()
{setBounds(100,100,180,180);
setVisible(true);
menubar=newJMenuBar();
menu=newJMenu("动物");
itemCat=newJMenuItem("猫",newImageIcon("cat.gif"));
itemDog=newJMenuItem("狗",newImageIcon("dog.gif"));
itemCat.addActionListener(this);
itemDog.addActionListener(this);
itemCat.setAccelerator(KeyStroke.getKeyStroke(''O''));
itemDog.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
InputEvent.CTRL_MASK));
menu.add(itemCat);
menu.add(itemDog);
menubar.add(menu);
setJMenuBar(menubar);
label=newJLabel();
Containercon=getContentPane();
con.setLayout(newFlowLayout());
con.add(label);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
publicvoidactionPerformed(ActionEvente)
{JMenuItemitem=(JMenuItem)e.getSource();
Iconicon=item.getIcon();
label.setIcon(icon);
validate();
}
}
例子10
importjavax.swing.;
importjava.awt.;
importjava.awt.event.;
publicclassExample17_10
{publicstaticvoidmain(Stringargs[])
{ToolWinwin=newToolWin();
win.validate();
}
}
classToolWinextendsJFrameimplementsActionListener
{JButtonbuttonCat,buttonDog;
JLabellabel;
JToolBarbar;
Containercon;
ToolWin()
{con=getContentPane();
setSize(300,250);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Iconcat_icon=newImageIcon("cat.gif");
Icondog_icon=newImageIcon("dog.gif");
buttonCat=newJButton(cat_icon);
buttonDog=newJButton(dog_icon);
bar=newJToolBar();
bar.add(buttonCat);
bar.add(buttonDog);
con.add(bar,BorderLayout.NORTH);
label=newJLabel();
con.add(label,BorderLayout.CENTER);
buttonCat.addActionListener(this);
buttonDog.addActionListener(this);
buttonCat.setToolTipText("小猫");
buttonDog.setToolTipText("小狗");
}
publicvoidactionPerformed(ActionEvente)
{JButtonb=(JButton)e.getSource();
Iconicon=b.getIcon();
label.setIcon(icon);
validate();
}
}
例子11
importjavax.swing.;
importjava.awt.;
importjava.awt.event.;
importjavax.swing.;
importjavax.swing.tree.;
publicclassExample17_11
{publicstaticvoidmain(Stringargs[])
{TreeWinwin=newTreeWin();
win.validate();
}
}
classTreeWinextendsJFrame
{TreeWin()
{setSize(300,250);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Containercon=getContentPane();
DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("根");//根节点
DefaultMutableTreeNodet1=newDefaultMutableTreeNode("节点");//节点
DefaultMutableTreeNodet2=newDefaultMutableTreeNode("叶节点");
DefaultMutableTreeNodet1_1=newDefaultMutableTreeNode("叶节点");
DefaultMutableTreeNodet1_2=newDefaultMutableTreeNode("叶节点");
root.add(t1);
root.add(t2);
t1.add(t1_1);
t1.add(t1_2);
JTreetree=newJTree(root);//创建根为root的树
JScrollPanescrollpane=newJScrollPane(tree);
con.add(scrollpane);
}
}
例子12
importjavax.swing.;
importjavax.swing.tree.;
importjava.awt.;
importjava.awt.event.;
importjava.io.;
importjava.util.;
publicclassExample17_12
{publicstaticvoidmain(Stringargs[])
{Classmatewin=newClassmate();
win.validate();
}
}
classClassmateextendsJFrame
{JTreetree=null;
DefaultMutableTreeNoderoot;
BufferedReaderin;
FileReaderfile;
Classmate()
{Containercon=getContentPane();
Strings=null;
try{Filef=newFile("通讯录.txt");
file=newFileReader(f);
in=newBufferedReader(file);
}
catch(FileNotFoundExceptione){}
try{s=in.readLine();//读取第一行并用它创建根节点
root=newDefaultMutableTreeNode(s);
}
catch(IOExceptionexp){}
try{while((s=in.readLine())!=null&&(s.startsWith("%")))
{s=in.readLine();
DefaultMutableTreeNode同学类别=newDefaultMutableTreeNode(s);
root.add(同学类别);
while((s=in.readLine())!=null&&!(s.startsWith("end")))
{StringTokenizertokenizer=newStringTokenizer(s,"#");
Stringtemp=tokenizer.nextToken();
DefaultMutableTreeNode姓名=newDefaultMutableTreeNode(temp);
同学类别.add(姓名);
while(tokenizer.hasMoreTokens())
{姓名.add(newDefaultMutableTreeNode(tokenizer.nextToken()));
}
}
}
}
catch(IOExceptionexp){}
tree=newJTree(root);
JScrollPanescrollpane=newJScrollPane(tree);
con.add(scrollpane);
setVisible(true);
setBounds(70,80,200,300);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
例子13
importjavax.swing.;
importjavax.swing.tree.;
importjava.awt.;
importjava.awt.event.;
importjavax.swing.event.;
importjava.io.;
classRememberextendsJFrameimplementsTreeSelectionListener,ActionListener
{JTreetree=null;
JTextAreatext=newJTextArea(20,20);
inti=0;
DefaultMutableTreeNoderoot;
JButtonb_save=newJButton("保存日志"),
b_del=newJButton("删除日志");
DefaultMutableTreeNodemonth[]=newDefaultMutableTreeNode[13];
Remember()
{Containercon=getContentPane();
DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("日历记事本");
for(i=1;i<=12;i++)
{month[i]=newDefaultMutableTreeNode(""+i+"月");
root.add(month[i]);
}
for(i=1;i<=12;i++)
{if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{for(intj=1;j<=31;j++)
month[i].add(newDefaultMutableTreeNode(j+"日"));
}
elseif(i==4||i==6||i==9||i==11)
{for(intj=1;j<=30;j++)
month[i].add(newDefaultMutableTreeNode(j+"日"));
}
else
{for(intj=1;j<=28;j++)
month[i].add(newDefaultMutableTreeNode(j+"日"));
}
}
b_save.addActionListener(this);
b_del.addActionListener(this);
tree=newJTree(root);
JPanelp=newJPanel();
p.setLayout(newBorderLayout());
JScrollPanescrollpane_1=newJScrollPane(text);
p.add(scrollpane_1,BorderLayout.CENTER);
JPanelp_1=newJPanel();
p_1.add(b_save);
p_1.add(b_del);
p.add(p_1,BorderLayout.NORTH);
JScrollPanescrollpane_2=newJScrollPane(tree);
JSplitPanesplitpane=
newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollpane_2,p);
tree.addTreeSelectionListener(this);
con.add(splitpane);
setVisible(true);
setBounds(70,80,460,320);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
publicvoidvalueChanged(TreeSelectionEvente)
{text.setText(null);
if(e.getSource()==tree)
{DefaultMutableTreeNodenode=
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(node.isLeaf())
{Stringstr=node.toString();
for(inti=0;i<=12;i++)
{if(node.getParent()==month[i])
{try{Stringtemp=null;
Filef=newFile(node.getParent().toString()+str+".txt");
FileReaderfile=newFileReader(f);
BufferedReaderin=newBufferedReader(file);
while((temp=in.readLine())!=null)
text.append(temp+''\n'');
file.close();
in.close();
}
catch(Exceptione1){}
}
}
}
}
}
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==b_save)
{DefaultMutableTreeNodenode=
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
Stringstr=node.toString();
if(node.isLeaf())
{try
{Filef=newFile(node.getParent().toString()+str+".txt");
FileWritertofile=newFileWriter(f);
BufferedWriterout=newBufferedWriter(tofile);
out.write(text.getText(),0,(text.getText()).length());
out.flush();
tofile.close();out.close();
}
catch(Exceptione1){}
}
}
elseif(e.getSource()==b_del)
{DefaultMutableTreeNodenode=
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
Stringstr=node.toString();
if(node.isLeaf())
{Filef=newFile(node.getParent().toString()+str+".txt");
f.delete();
}
}
}
}
publicclassExample17_13
{publicstaticvoidmain(Stringargs[])
{Rememberwin=newRemember();
win.validate();
}
}
|
|