JAVA例题10.doc_第1页
JAVA例题10.doc_第2页
JAVA例题10.doc_第3页
JAVA例题10.doc_第4页
JAVA例题10.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

例10-1 编写图形界面程序,实现带有菜单、按钮、文本区组件的窗口界面。本例运行后将产生一个带菜单、文本区、按钮的窗口。菜单可以展开、点击,文本区可以输入内容并进行编辑,按钮可以点击。窗口具备最小化、最大化、关闭、调整尺寸等基本功能。/ MyFrame.javaimport javax.swing.*;import java.awt.Color;import java.awt.BorderLayout;public class MyFrame extends JFrame JTextArea txa;JPanel panBtn;JButton btnOK, btnCancel;JMenuBar menuBar;JMenu fileMenu;JMenuItem openItem,exitItem;MyFrame(String s)super(s);setSize(300,300);setLocationRelativeTo(null); JPanel contentPane = new JPanel( ); setContentPane(contentPane);contentPane.setLayout(new BorderLayout();txa = new JTextArea();panBtn = new JPanel();btnOK = new JButton(确定);btnCancel = new JButton(取消);panBtn.add(btnOK);panBtn.add(btnCancel);contentPane.add(txa,BorderLayout.CENTER);contentPane.add(panBtn,BorderLayout.SOUTH);menuBar = new JMenuBar();this.setJMenuBar(menuBar);fileMenu = new JMenu(文件); openItem = new JMenuItem(打开); exitItem = new JMenuItem(退出); menuBar.add(fileMenu); fileMenu.add(openItem); fileMenu.add(exitItem); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );/GUIDemo.javapublic class GUIDemopublic static void main(String args) MyFrame frm = new MyFrame(GUI窗口);例10-2 使用JFrame框架类创建图形界面import javax.swing.JFrame;public class FrameDemo1public static void main(String args) /创建框架对象并初始化标题栏文字为“我的第一个框架!”JFrame frm = new JFrame(我的第一个框架!); frm.setSize(300,300); /设置框架尺寸frm.setLocation(100,100); /设置框架在屏幕上的位置frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/右上角关闭frm.setVisible( true ); /设置框架可见例10-3 居中显示的框架import javax.swing.JFrame;import java.awt.Toolkit;public class FrameDemo2public static void main(String args) JFrame frm = new JFrame(我的第一个框架!); frm.setSize(300,300); Toolkit toolkit = Toolkit.getDefaultToolkit();int x =(int)(toolkit.getScreenSize().getWidth()-frm.getWidth()/2;int y =(int)(toolkit.getScreenSize().getHeight()-frm.getHeight()/2;frm.setLocation(x,y); /或使用frm.setLocationRelativeTo(null);替换上面4条语句frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible( true ); 例10-4 使用JPanel面板类import javax.swing.JFrame;public class PanelDemopublic static void main(String args) JFrame frm = new JFrame(我的第一个框架!);frm.setSize(300,300);frm.setLocationRelativeTo(null);JPanel myPane=new JPanel( ); /创建面板对象frm.setContentPane(myPane); /将面板放置在框架中myPane.setBackground(Color.BLUE); /设置面板为蓝色背景色frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible( true );例10-5 当前计算机所有字体名称及效果演示本程序获取当前计算机所支持的所有字体,并将字体名称显示在窗口界面内。每个名称的文字用其表示的字体进行显示。在JPanel面板内放置JLabel标签,标签负责显示文字。JLabel标签类稍后进行介绍,此处进行简单的使用先。import javax.swing.*;/引入swing包import java.awt.Font;/引入awt包的字体类import java.awt.GraphicsEnvironment;/引入awt包的GraphicsEnvironment类public class FontDemopublic static void main(String args) JFrame frm = new JFrame(所有字体名称及效果演示);frm.setSize(700,400);frm.setLocationRelativeTo(null);JPanel contentPane=new JPanel( ); frm.setContentPane(contentPane); /获取当前计算机环境的所有字体信息,将字体名称保存在fontName数组里GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();String fontName=ge.getAvailableFontFamilyNames();int len = fontName.length;JLabel lab = new JLabellen; /创建标签对象数组Font font;/循环对每个字体数组元素和标签元素进行操作for(int i = 0;ilen; i+)labi = new JLabel(fontNamei);/设置标签内容为当前字体名称/设置当前字体,加粗倾斜,14号font = new Font(fontNamei,Font.BOLD+Font.ITALIC,14);labi.setFont(font);/将字体应用于标签contentPane.add(labi);/将标签放置在面板上显示frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible( true );例10-6 按钮的使用举例import javax.swing.*;public class ButtonDemo1public static void main(String args) JFrame frm = new JFrame(按钮的使用演示);frm.setSize(200,200);frm.setLocationRelativeTo(null);JPanel contentPane=new JPanel( ); frm.setContentPane(contentPane); JButton btn = new JButton(按钮);/创建一个按钮,所带文字为“按钮”contentPane.add(btn);/将按钮放置在面板上显示frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible( true );例10-7 设置按钮的属性import javax.swing.*;import java.awt.Color;import java.awt.Font;public class ButtonDemo2 public static void main(String args) JFrame frm = new JFrame(按钮的使用演示);frm.setSize(200,200);frm.setLocationRelativeTo(null);JPanel contentPane=new JPanel( ); frm.setContentPane(contentPane); JButton btn = new JButton(按钮);/创建按钮对象btn.setBackground(Color.YELLOW);/设置背景色为黄色btn.setForeground(Color.BLUE);/设置前景色为蓝色Font font = new Font(幼圆,Font.BOLD+Font.ITALIC,20);/创建字体btn.setFont(font);/设置按钮的字体contentPane.add(btn);/将按钮放置在面板上显示frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible( true );例10-8 带图标的按钮本例实现在按钮上除文字外还显示图标。两个按钮用两种方式实现图标。第一个按钮在创建时初始化文字和图标,第二个按钮在创建后通过setIcon()方法设置其图标。import javax.swing.*;import java.awt.Color;import java.awt.Font;public class ButtonDemo3public static void main(String args) JFrame frm = new JFrame(按钮的使用演示);frm.setSize(200,200);frm.setLocationRelativeTo(null);JPanel contentPane=new JPanel( ); frm.setContentPane(contentPane); Icon icon1 = new ImageIcon(bee.jpg);/创建Icon对象引用图片JButton btn1 = new JButton(采蜜,icon1);/创建带有文字和图标的按钮Icon icon2 = new ImageIcon(LogonStudio.gif);/创建Icon对象引用图片JButton btn2 = new JButton(电脑);/创建带有文字的按钮btn2.setIcon(icon2);/设置按钮的图标contentPane.add(btn1);contentPane.add(btn2);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible( true );例10-9 标签的使用import javax.swing.*;public class LabelDemopublic static void main(String args) JFrame frm = new JFrame(标签的使用演示);frm.setSize(300,300);frm.setLocationRelativeTo(null);JPanel contentPane=new JPanel( ); frm.setContentPane(contentPane); Icon icon1 = new ImageIcon(aPencil.png);/创建Icon对象引用图片/创建带有文字,图标的标签,图标在前JLabel lab1 = new JLabel(标签1,icon1,SwingConstants.LEADING);Icon icon2 = new ImageIcon(aTalk.png);/创建Icon对象引用图片JLabel lab2 = new JLabel(标签2);/创建带有文字的标签lab2.setIcon(icon2);/设置标签的图标/设置文字在左侧lab2.setHorizontalTextPosition(SwingConstants.LEFT);contentPane.add(lab1);contentPane.add(lab2);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible( true );例10-10 自定义框架类import javax.swing.*;import java.awt.Color;public class MyFrame extends JFrame /自定义框架类MyFrame继承自JFrameprivate JPanel contentPane;private JLabel lab;private JButton btn;public MyFrame(String s) /构造方法super(s);/调用父类构造方法初始化标题栏文字setSize(300,300);setLocationRelativeTo(null);contentPane=new JPanel( ); setContentPane(contentPane); lab = new JLabel(取得密匙请点:);/创建标签lab.setForeground(Color.ORANGE);/设置标签桔黄前景色Icon icon = new ImageIcon(key.gif);/创建Icon对象引用图片btn = new JButton(钥匙,icon);/创建带有文字和图标的按钮contentPane.add(lab);contentPane.add(btn);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );public static void main(String args)/使用自定义框架类创建对象,即显示自定义窗口MyFrame frm = new MyFrame(我的第一个自定义框架!);例10-11 结构更加清晰的自定义框架类/ MyFrame.javaimport javax.swing.*;import java.awt.Color;public class MyFrame extends JFrame private JPanel contentPane;private JLabel lab;private JButton btn;public MyFrame(String s) super(s);setSize(300,300);setLocationRelativeTo(null);contentPane=new JPanel( ); setContentPane(contentPane); lab = new JLabel(取得密匙请点:);lab.setForeground(Color.ORANGE);Icon icon = new ImageIcon(key.gif);btn = new JButton(钥匙,icon);contentPane.add(lab);contentPane.add(btn);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );/ MyFrameDemo.javapublic class MyFrameDemo public static void main(String args)MyFrame frm1 = new MyFrame(我的第一个自定义框架);MyFrame frm2 = new MyFrame(我的第二个自定义框架);例10-12 文本输入组件的使用/MyFrame.javaimport javax.swing.*;public class MyFrame extends JFrame /自定义框架类MyFrameprivate JPanel contentPane;private JLabel lab1,lab2,lab3;private JTextField tf;private JPasswordField pwf;private JTextArea ta;MyFrame(String s)/构造方法super(s);setSize(250,300);setLocationRelativeTo(null); contentPane=new JPanel( ); setContentPane(contentPane); lab1 = new JLabel(账 号:);JTextField tf = new JTextField(15);lab2 = new JLabel(密 码:);pwf = new JPasswordField(15);pwf.setEchoChar(*);/设置密码框的回显字符为*lab3 = new JLabel(发 言:);ta = new JTextArea(10,15);contentPane.add(lab1);contentPane.add(tf);contentPane.add(lab2);contentPane.add(pwf);contentPane.add(lab3);contentPane.add(ta);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );/ TextFieldDemo.javapublic class TextFieldDemopublic static void main(String args) MyFrame frm = new MyFrame(文本输入组件演示);例10-13 JCheckBox复选框示例/MyFrame.javaimport javax.swing.*;public class MyFrame extends JFrame /自定义框架类private JCheckBox chkMusic;private JCheckBox chkSports;private JCheckBox chkRead;private JCheckBox chkTravel;private JLabel lab;MyFrame(String s)/构造方法super(s);setSize(400,200);setLocationRelativeTo(null); JPanel contentPane=new JPanel( ); setContentPane(contentPane); lab = new JLabel(爱好:);chkMusic = new JCheckBox(音乐);chkRead = new JCheckBox(阅读);chkSports = new JCheckBox(体育);chkTravel = new JCheckBox(旅游);contentPane.add(lab);contentPane.add(chkMusic);contentPane.add(chkRead);contentPane.add(chkSports);contentPane.add(chkTravel);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );/ CheckBoxDemo1.javapublic class CheckBoxDemo1public static void main(String args) MyFrame frm = new MyFrame(复选框组件演示);例10-14 创建带图标的复选框,并通过不同的图片体现选中状态/MyFrame.javaimport javax.swing.*;public class MyFrame extends JFrame private JCheckBox chkLamp;private Icon icon;MyFrame(String s)super(s);setSize(200,200);setLocationRelativeTo(null); JPanel contentPane=new JPanel( ); setContentPane(contentPane); icon = new ImageIcon(aLightOff.png);/创建Icon对象引用图片chkLamp = new JCheckBox(开灯,icon);/创建带文字和图片的复选框/设置选中状态下复选框的图标chkLamp.setSelectedIcon(new ImageIcon(aLightOn.png);contentPane.add(chkLamp);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );/ CheckBoxDemo2.javapublic class CheckBoxDemo2public static void main(String args) MyFrame frm = new MyFrame(带图标的复选框组件演示);例10-15 使用JRadioButton单选按钮实现性别选项的互斥/MyFrame.javaimport javax.swing.*;public class MyFrame extends JFrame private JRadioButton rbtMale;/声明单选按钮”男”private JRadioButton rbtFemale;/声明单选按钮”女”private ButtonGroup grp;/声明按钮组private JLabel lab;MyFrame(String s)super(s);setSize(300,200);setLocationRelativeTo(null); JPanel contentPane=new JPanel( ); setContentPane(contentPane); lab = new JLabel(性别:);rbtMale = new JRadioButton(男);/创建单选按钮男”rbtFemale = new JRadioButton(女);/创建单选按钮”女”grp = new ButtonGroup();/创建按钮组grp.add(rbtMale);/添加单选按钮至按钮组grp.add(rbtFemale);/同组单选按钮互斥contentPane.add(lab);contentPane.add(rbtMale);contentPane.add(rbtFemale);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );/RadioButtonDemo.javapublic class RadioButtonDemopublic static void main(String args) MyFrame frm = new MyFrame(单选按钮组件演示);例10-16 JComboBox组合框示例/MyFrame.javaimport javax.swing.*;public class MyFrame extends JFrame private JComboBox cmbMonth;private JLabel lab;MyFrame(String s)super(s);setSize(200,200);setLocationRelativeTo(null); JPanel contentPane=new JPanel( ); setContentPane(contentPane); lab = new JLabel(月份:);String month = new String12;/创建字符串数组用来保存月份for(int i=1;i=12;i+)/循环给数组元素赋值monthi-1 = i+月;cmbMonth = new JComboBox(month);/用该数组初始化组合框contentPane.add(lab);contentPane.add(cmbMonth);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );/ComboBoxDemo.javapublic class ComboBoxDemopublic static void main(String args) MyFrame frm = new MyFrame(组合框组件演示); 例10-17 菜单组件的实现/MenuFrame.javaimport javax.swing.*;public class MenuFrame extends JFrame private JMenuBar menuBar;/菜单条private JMenu fileMenu;/文件菜单private JMenuItem newItem,openItem,saveItem,exitItem;/菜单项MenuFrame(String s)super(s);setSize(200,300);this.setLocationRelativeTo(null);menuBar = new JMenuBar();/创建各菜单组建fileMenu = new JMenu(文件);newItem = new JMenuItem(新建);openItem = new JMenuItem(打开);saveItem = new JMenuItem(保存);exitItem = new JMenuItem(退出);setJMenuBar(menuBar);/设置当前框架的菜单条menuBar.add(fileMenu);/将文件菜单添加至菜单条fileMenu.add(newItem);/将各菜单项添加至文件菜单fileMenu.add(openItem);fileMenu.add(saveItem);fileMenu.addSeparator();/添加分隔线fileMenu.add(exitItem);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setVisible( true );/MenuDemo1.javapublic class MenuDemo1public static void main(String args) MenuFrame frm = new MenuFrame(带菜单的框架);例10-18 带复选框和单选按钮的菜单项示例/MenuFrame.javaimport javax.swing.*;public class MenuFrame extends JFrame private JMenuBar menuBar;private JMenu viewMenu;private JCheckBoxMenuItem linewrapItem; /带复选框的菜单项private JRadioButtonMenuItem fullItem,normalItem; /带单选按钮的菜单项MenuFrame(String s)super(s);setSize(200,200);this.setLocationRelativeTo(null);menuBar = new JMenuBar();setJMenuBar(menuBar);viewMenu = new JMenu(视图);linewrapItem = new JCheckBoxMenuItem(自动换行);fullItem = new JRadioButtonMenuItem(全屏显示);normalItem = new JRadioButtonMenuItem(正常显示);ButtonGroup grp = new ButtonGroup();grp.add(fullItem);grp.add(normalItem);viewMenu.add(linewrapItem);viewMenu.addSeparator();viewMenu.add(fullItem);viewMenu.add(normalItem);menuBar.add(viewMenu);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setVisible( true );/MenuDemo2.javapublic class MenuDemo2public static void main(String args) MenuFrame frm = new MenuFrame(不同菜单项演示);例10-19 带有图标和子菜单的框架/MenuFrame.javaimport javax.swing.*;public class MenuFrame extends JFrame private JMenuBar menuBar;private JMenu fileMenu,subMenu;/文件菜单,子菜单private JMenuItem newItem,openItem,saveItem,exitItem;private JMenuItem docItem,pptItem,xlsItem;MenuFrame(String s)super(s);setSize(200,300);this.setLocationRelativeTo(null);menuBar = new JMenuBar();/创建菜单条、文件菜单等组件fileMenu = new JMenu(文件);newItem = new JMenuItem(新建);saveItem = new JMenuItem(保存);exitItem = new JMenuItem(退出);subMenu = new JMenu(打开);/创建子菜单及相关图标、菜单项组件Icon icon = new ImageIcon(icon_doc.gif);docItem = new JMenuItem(word文档,icon);icon = new ImageIcon(icon_ppt.gif);pptItem = new JMenuItem(ppt幻灯片,icon);icon = new ImageIcon(icon_xls.gif);xlsItem = new JMenuItem(xls表格,icon);subMenu.add(docItem);/组合子菜单subMenu.add(pptItem);subMenu.add(xlsItem);setJMenuBar(menuBar);/组合菜单条、文件菜单menuBar.add(fileMenu);fileMenu.add(newItem);fileMenu.add(subMenu);/添加子菜单至文件菜单fileMenu.add(saveItem);fileMenu.addSeparator();/添加分隔线fileMenu.add(exitItem);JPanel contentPane=new JPanel( ); setContentPane(contentPane); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setVisible( true );/MenuDemo3.javapublic class MenuDemo3public static void main(String args) MenuFrame frm = new MenuFrame(子菜单演示);例10-20 BorderLayout布局演示在个方位区域添加按钮,并设置水平、垂直间隔为20像素距离。/ MyFrame.javaimport javax.swing.*;import java.awt.BorderLayout;public class MyFrame extends JFrame JButton btnEast,btnWest,btnCenter,btnSouth,btnNorth;MyFrame(String s)super(s);setSize(300,300);setLocationRelativeTo(null); JPanel contentPane=new JPanel( ); setContentPane(contentPane); BorderLayout bLayout = new BorderLayout(20,20);/创建边界布局管理contentPane.setLayout(bLayout);/将布局管理应用于内容面板btnEast = new JButton(东);btnWest = new JButton(西);btnSouth = new JButton(南);btnNorth = new JButton(北);btnCenter = new JButton(中);contentPane.add(btnEast,BorderLayout.EAST); /将按钮加到面板指定方位contentPane.add(btnWest,BorderLayout.WEST);contentPane.add(btnSouth,BorderLayout.SOUTH);contentPane.add(btnNorth,BorderLayout.NORTH);contentPane.add(btnCenter,BorderLayout.CENTER);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible( true );/ BorderLayoutDemo.javapublic class BorderLayoutDemo public static void main(String args) MyFrame frm = new MyFra

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论