配色: 字号:
例代码-17
2013-01-25 | 阅:  转:  |  分享 
  


第十七章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();

}

}





献花(0)
+1
(本文系liyi039首藏)