欢迎来到天天文库
浏览记录
ID:9891755
大小:73.00 KB
页数:0页
时间:2018-05-14
《第11章 swing组件简介》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Swing组件简介1.模型-视图-控制器设计模式Swing组件都有三个要素:l内容,例如,按钮的状态(是否按下)或者文本框中的文本。l外观显示(颜色,尺寸)。l行为(对事件的反应)。也就是MVC模式:实现此模式的三个独立的类:u模型-------存储内容u视图-------显示内容u控制器----处理用户输入这个模式明确规定了三个对象如何进行交互。模型存储内容,它没有任何用户界面。对于一个按钮来说,内容非常简单—它只是一组标志,用来说明按钮是否按下,是否启用等等。对于一个文本框来说,内容稍稍复杂,它是容纳当前文本的一个字符串对象。这个内容和视图的内容并
2、不一致------如果内容的长度大于文本框的显示长度,那么用户看到的就只有文本框显示的那一部分。模型必须实现改变和发现内容的方法。例如:一个文本模型中的方法有:在当前文本中添加或者删除字符以及把当前文本作为一个字符串返回等。再次强调,模型是完全不可见的,显示存储在模型中的数据是视图的工作。2.选择组件l复选框(JCheckBox)例如:JCheckBoxTest.javaimportjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classJCheckBoxTest{publicstaticv
3、oidmain(String[]args){JCheckBoxFramef=newJCheckBoxFrame();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.show();}}classJCheckBoxFrameextendsJFrame{privateJLabellabel;privateJCheckBoxbold;privateJCheckBoxitalic;publicstaticfinalintFONTSIZE=30;publicJCheckBoxFrame(){setTitle("
4、JCheckBoxFrame");setSize(400,300);ContainercontentPane=getContentPane();label=newJLabel("Thedogjumpsoverthepig");label.setFont(newFont("Serif",Font.PLAIN,FONTSIZE));contentPane.add(label,BorderLayout.CENTER);ActionListenerlistener=newActionListener(){publicvoidactionPerformed(Ac
5、tionEvente){intmode=0;if(bold.isSelected())mode+=Font.BOLD;if(italic.isSelected())mode+=Font.ITALIC;label.setFont(newFont("Serif",mode,FONTSIZE));}};JPanelbuttonPanel=newJPanel();bold=newJCheckBox("Bold");bold.addActionListener(listener);buttonPanel.add(bold);italic=newJCheckBox
6、("Italic");italic.addActionListener(listener);buttonPanel.add(italic);contentPane.add(buttonPanel,BorderLayout.SOUTH);}};l单选按钮对于复选框来说,用户可以选折0个或多个。在许多情况下,我们需要用户只选择几个框中的一个。当用户选择另外一个时,前一个选择就自动取消。这样的一组框通常称作一个单选按钮组(radiobuttongroup),这是因为这些按钮的工作方式像收音机上的电台选择按钮,当按下一个按钮时,前一个按下的按钮则自动释放。例如
7、:JRadioButtonTest.javaimportjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classJRadioButtonTest{publicstaticvoidmain(String[]args){JRadioButtonFramef=newJRadioButtonFrame();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.show();}}classJRadioButtonFrameextendsJFrame{pr
8、ivateJPanelbuttonPanel;privateButtonGroupgroup;
此文档下载收益归作者所有