您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 华北电力大学教学用ppt-04-图形用户界面设计(3)Swing常用组件
NCEPUSwing常用组件2019年11月24日星期日NCEPU编写一个计算器所需要的知识点常用组件和容器的使用方法及功能AWT事件处理模型例2019年11月24日星期日Swing中的容器顶级容器:一般是一个顶层窗口(框架)JFrame:用于框架窗口的类,应用程序至少使用一个框架窗口。JDialog:用于对话框的类。JApplet:用于使用Swing组件的JavaApplet的类。中间容器:需要包含在顶层容器中使用的容器。JPanel:面板,是最灵活、最常用的中间容器。JScrollPane:与JPanel类似,但还可在大的组件或可扩展组件周围提供滚动条。JTabbedPane:包含多个组件,但一次只显示一个组件。用户可在组件之间方便地切换。JToolBar:按行或列排列一组组件(通常是按钮)。2019年11月24日星期日与AWT组件不同,Swing组件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(contentpane)上。JFrame的使用2019年11月24日星期日JFrame的使用向JFrame中添加组件的两种方式之一:用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent)•在J2SE5.0中,我们可以直接添加部件到最高级的Swing容器,也可以直接在容器内设置布局管理和删除部件。•这个变化允许我们可以省去调用getContentPane()而直接在容器内应用add(),setLayout()和remove()。•然而,还是不能忽略ContentPane,比方说setBackground,需要用fr.getContentPane().setBackground(Color.blue)2019年11月24日星期日JFrame的使用当你创建一个JFrame的时候JFramejf=newJFrame();在构造方法JFrame()内部会给jf默认添加一个rootPane。jf.setBackground(Color.blue);jf.getContentPane().setBackground(Color.black);NCEPUimportjavax.swing.*;importjava.awt.*;publicclassFrameTestextendsJFrame{FrameTest(){super(Test);setBackground(Color.BLACK);setLayout(newGridLayout(6,6,2,2));//1.4中问题1for(inti=0;i36;i++){JPaneljPanel=newJPanel();jPanel.setBackground(newColor((int)(Math.random()*16777215)));add(jPanel);//1.4中问题2}setSize(400,400);setVisible(true);}publicstaticvoidmain(String[]args){newFrameTest();}}getContentPane().setBackground(Color.BLACK);2019年11月24日星期日JFrame的使用向JFrame中添加组件的两种方式之二:把组件添加到Jpanel之类的中间容器中,用setContentPane()方法把该容器置为JFrame的内容面板:JpanelcontentPane=newJpanel();……//把其它组件添加到Jpanel中;frame.setContentPane(contentPane);2019年11月24日星期日Swing常用容器—JPanel的使用JPanel面板是容器组件,没有标题,不能独立存在。实例化以后必须使用Container类的add方法装入到Window对象或Frame对象中。可用javax.swing.BorderFactory类中的方法获得2019年11月24日星期日importjavax.swing.*;importjava.awt.*;importjava.awt.image.BufferedImage;importjavax.imageio.ImageIO;classGUIDemo1{publicstaticvoidmain(String[]args)throwsException{JFramef=newJFrame(第一个Java窗口);f.setSize(300,200);BufferedImageimage=ImageIO.read(f.getClass().getResource(/MPj.jpg));f.setIconImage(image);//设置图标f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setVisible(true);//设置容器可见性f.setResizable(false);f.setLocationRelativeTo(null);JPanelp=newJPanel();p.setBackground(Color.BLUE);f.setLayout(null);p.setSize(100,100);f.getContentPane().add(p);}}2019年11月24日星期日NCEPUSwing的常用组件—JLabelJLabel(标签)是用户只能查看不能修改的文本/图像显示区域。2019年11月24日星期日NCEPUSwing的常用组件--JTextFieldJTextField(单行文本域)是一个单行条形文本区,能够接收输入、显示输出。2019年11月24日星期日NCEPU获得文本域的内容x=Integer.parseInt(text1.getText().trim());重新设置文本域的内容resultText.setText(s);Swing的常用组件--JTextFieldsetText(Strings)设置文本框中的文本getText()获取文本框中的文本setEditable(booleanb)指定文本框的可编辑性。创建的文本框默认为可编辑的2019年11月24日星期日NCEPU获取两个文本域的输入并求和,然后显示在第三个文本域中。Swing的常用组件——JTextFieldimportjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassTFMath{publicstaticvoidmain(String[]args){newTFFrame().launchFrame();}}classTFFrameextendsJFrame{JTextFieldnum1,num2,num3;publicvoidlaunchFrame(){num1=newJTextField(10);num2=newJTextField(10);num3=newJTextField(15);JLabellblPlus=newJLabel(+);JButtonbtnEqual=newJButton(=);btnEqual.addActionListener(newMyMonitor());setLayout(newFlowLayout());add(num1);add(lblPlus);add(num2);add(btnEqual);add(num3);pack();setVisible(true);}Swing常用的组件——文本域privateclassMyMonitorimplementsActionListener{publicvoidactionPerformed(ActionEvente){intn1=Integer.parseInt(num1.getText());intn2=Integer.parseInt(num2.getText());num3.setText(+(n1+n2));}}}2019年11月24日星期日NCEPUSwing的常用组件--JPasswordFieldJPasswordField(口令框)接受用户的输入,但不会真正显示出来,而是显示回显符。密码域JPasswordFieldimportjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassTFPassword{publicstaticvoidmain(String[]args){newTFFrame2();}}密码域JPasswordFieldclassTFFrame2extendsJFrame{TFFrame2(){JPasswordFieldpf=newJPasswordField();add(pf);pf.addActionListener(newTFActionListener2());pack();setVisible(true);}}密码域JPasswordFieldclassTFActionListener2implementsActionListener{publicvoidactionPerformed(ActionEvente){JPasswordFieldpf=(JPasswordField)e.getSource();System.out.println(pf.getText());tf.setText();}}2019年11月24日星期日NCEPU密码域JPasswordField2019年11月24日星期日NCEPUSwing的常用组件--JPasswordField实战:实现上面的图形用户界面。2019年11月24日星期日NCEPUSwing的常用组件--JTextAreaJTextArea(多行文本框)可以输入或输出多行文本。设定是否可编辑setEditable(Booleanb)JTextArea(Stringtext,introws,intcolumns)指定文本创建文本区,指定行数和列数2019年11月24日星期日NCEPU换行方式:手动换行自动换行:通过设置换行属性来避免手动换行。增加滚动条:通过把文本区插入到一个滚动窗格中来实现。这也是给其他组件添加滚动条的方法。textArea.setLineWrap(true);JScrollPanescrollPane=newJScrollPane(textArea);Swing的常用组件--JTextArea2019年11月24日星期日NCEPU文本区的三种显示方式Swing的常用组件--JTextArea2019年11月24日星期日NCEPU例:创建包含文本区、文本框和“提交”按钮的窗口。在文本区中输入文字,单击“提交”按钮,文本框中会出现同样的文字。Swing的常用组件--JTextArea2019年11月24日星期日NCEPU其他Swing组件的使用2019年11月24日星期日NCEPUSwing的常用组件—复选框JCheckBoxJCheckBox(复选框)有选中和未选中两种状态,允许用户从一组选项中进行多个选择。设置复选框的文本setText获取复选框的文本getText2019年11月24日星期日NCEPU常用的构造方法有:JCheckBox()JCheckBox(Iconicon)JCheckBox(Iconicon,booleanselected)JCheckBox(Stringtext)JCheckBox(Stringtext,booleanselected)JCheckBox(Stringtext,Iconicon)JCheckBox(Stringtext,Iconicon,booleanselected)Swing的常用组件—
本文标题:华北电力大学教学用ppt-04-图形用户界面设计(3)Swing常用组件
链接地址:https://www.777doc.com/doc-1842228 .html