JavaSwing界面设计(所有控件及示例)
- 格式:ppt
- 大小:1.80 MB
- 文档页数:133
JavaSwing组件⼤全实例演⽰⼀抛砖引⽟ 本⽂指在利⽤⼀个⼩”Swing 组件⼤全”来引导⼤家学习这门语⾔,熟悉Java Swing的各个组件。
并在学习过程中参考作者这⼀程序的⽅法和思想,最终形成⾃⼰的思维⽅式和学习⽅式。
你能举⼀返三是作者最开⼼的事情。
⼩程序演⽰了Java Swing⼤部分组件。
最后附上了全部代码及详细的注释说明。
希望本⽂能对⼤家学习Java有所帮助。
随着Java风潮席卷国内,学习Java的⽅法和路径越来越多。
⽽在⼤量的书本前,在Java庞⼤的类库前⼤⼤家都有点迷失⽅向的感觉,是学 J2EE,J2ME还是。
然⽽所有的这些都或多或少的离不开J2SE。
万丈⾼楼平地起。
J2SE是整个Java的基础,学好了这个对Java的各个⽅向都是很有利的。
⽽学习J2SE的最初点就在界⾯设计,因为界⾯编程是你来感觉最直接的⼿段,是提⾼⼤家编程兴趣的很好开始,因为你写完程序编译后可马上看到⾃⼰的成果。
⽽不像后台编程做完了都感受不到效果。
⽽好的界⾯也是你测试你其他程序的基础。
界⾯设计!不就是拖拉操作吗?如果是VB,VC等可视化的编程,的确只是⼀些拖拉操作,由于Java语⾔的设计中所有的东西都是程序代码,在 Java中如果想要设计⼀个好的界⾯,可不是简单的拖拉操作能完成的。
即使使⽤了如JBuilder这么强⼤的可视化⼯具,你也得亲⾃动⼿写⼀些界⾯设计代码才能很好的完成你的任务。
如果你能在此基础上理解Java界⾯设计的思想,对你学习这门语⾔将有莫⼤的帮助。
Java界⾯设计主要涉及Awt,Swing两⼤类库,Swing是Awt的扩展和功能加强。
下⾯我们就以Swing为基础来说说整个Java的界⾯设计。
⼆感受效果 在开始之前,让我们看看这篇⽂章要达到的效果,有了⽬标和成果才有学习的兴趣,起码我是这样认为和学习的。
如下图所⽰,这就是我们设计的界⾯,它包括了Swing中⼤部分常⽤的组件。
有些功能界⾯上反映不出来,⼤家可尝试编译源代码点南击各个部分,看看它们的响应事件。
java-Swing控件的用法和范例类JTableJTable用来显示和编辑规则的二维单元表。
JTable有很多用来自定义其呈现和编辑的设施,同时提供了这些功能的默认设置,从而可轻松地设置简单表。
例如,要设置一个10行10列的表:TableModel dataModel=new AbstractTableModel(){public int getColumnCount(){return10;}public int getRowCount(){return10;}public Object getValueAt(int row,int col){return new Integer(row*col);} };JTable table=new JTable(dataModel);JScrollPane scrollpane=new JScrollPane(table);注意,如果要在单独的视图中(在JScrollPane外)使用JTable并显示表标题,则可以使用getTableHeader()获取并单独显示它。
设计使用JTable的应用程序时,要严格注意用来表示表数据的数据结构。
DefaultTableModel 是一个模型实现,它使用一个Vector来存储所有单元格的值。
该Vector由包含多个Object 的Vector组成。
除了将数据从应用程序复制到DefaultTableModel中之外,还可以TableModel接口的方法来包装数据,这样可将数据直接传递到JTable,如以上示例所示。
这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。
在决定使用AbstractTableModel还是使用DefaultTableModel方面有一个好的实践经验,即在创建子类时使用AbstractTableModel作为基类,在不需要创建子类时则使用DefaultTableModel。
java swing 代码例子Java Swing是Java语言中用于构建图形用户界面(GUI)的一个开发工具包。
它提供了一组丰富的组件和容器,可以用于创建各种界面元素,如按钮、文本框、标签等。
下面是一些使用Java Swing的代码示例。
1. 创建一个简单的窗口```javaimport javax.swing.JFrame;public class SimpleWindow {public static void main(String[] args) {JFrame frame = new JFrame("简单窗口");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);frame.setVisible(true);}}```这段代码创建了一个简单的窗口,并设置了窗口的标题、关闭操作、大小和可见性。
2. 添加按钮和事件监听器```javaimport javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;public class ButtonExample {public static void main(String[] args) {JFrame frame = new JFrame("按钮示例");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButton button = new JButton("点击我");button.addActionListener(e -> {JOptionPane.showMessageDialog(frame, "你点击了按钮");});frame.add(button);frame.setSize(400, 300);frame.setVisible(true);}}```这段代码创建了一个带有一个按钮的窗口,当按钮被点击时,会弹出一个对话框显示"你点击了按钮"。
JAVAswing-常⽤组件在图形⽤户界⾯编程中,我们常常会提供⽤户登陆界⾯,⽐如登陆到会员管理系统、登陆到⼯资管理系统、仓库管理系统...常⽤组件Ⅰ.⽂本框(JTextField)Ⅱ.密码框(JPasswordField)Ⅲ.标签(JLable)Ⅳ.复选框(JCheckBox)Ⅴ.单选框(JRadioButton)Ⅵ.组合单选框(ButtonGroup)Ⅶ.下拉框(JComboBox)Ⅷ.列表(JList)Ⅸ.滚动窗格组件(JScrollPane)Ⅹ.多⾏⽂本框(JTextArea)ⅩⅠ.选项卡(JTabbedPane)实例简单会员管理系统登录界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉05⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;16import java.awt.*;17import javax.swing.*;1819//继承JFrame20public class Beekc extends JFrame{2122//定义组件23 JPanel jPanel1,jPanel2,jPanel3;24 JLabel jlb1,jlb2;25 JTextField jt;26 JPasswordField jpssswd;27 JButton jb1,jb2;2829public static void main(String[] args){30 Beekc beekc = new Beekc();31 }3233public Beekc(){34//创建组件35 jPanel1 = new JPanel();36 jPanel2 = new JPanel();37 jPanel3 = new JPanel();3839 jlb1 = new JLabel("⽤户");40 jlb2 = new JLabel("密码");41 jt = new JTextField(10);42 jpssswd = new JPasswordField(10);43 jb1 = new JButton("登录");44 jb2 = new JButton("注册");4546//设置布局管理器47this.setLayout(new GridLayout(3,1));48//添加JPanel49 jPanel1.add(jlb1);50 jPanel1.add(jt);51 jPanel2.add(jlb2);52 jPanel2.add(jpssswd);53 jPanel3.add(jb1);54 jPanel3.add(jb2);55//JPanel添加到JFanel56this.add(jPanel1);57this.add(jPanel2);58this.add(jPanel3);5960//窗体设置61this.setTitle("会员管理系统");62this.setSize(270,150);63this.setResizable(false);64this.setLocation(200,200);65this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);6667//显⽰68this.setVisible(true);6970 }7172 }⽤户注册界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉06⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;161718import javax.swing.*;19import java.awt.*;2021//继承JFrame22public class Beekc extends JFrame {2324//定义组件25 JPanel jPanel1,jPanel2,jPanel3;26 JLabel jlb1,jlb2;27 JCheckBox jc1,jc2,jc3;28 JRadioButton jrb1,jrb2;29 ButtonGroup bg;30 JButton jb1,jb2;3132public static void main(String[] args){33 Beekc beekc = new Beekc();34 }3536//构造函数37public Beekc(){38//创建组件39 jPanel1 =new JPanel();40 jPanel2 =new JPanel();41 jPanel3 =new JPanel();42 bg = new ButtonGroup();4344 jlb1 = new JLabel("你喜欢的运动");45 jlb2 = new JLabel("性别");46 jc1 =new JCheckBox("⾜球");47 jc2 =new JCheckBox("篮球");48 jc3 =new JCheckBox("排球");49 jrb1 = new JRadioButton("男");50 jrb2 = new JRadioButton("⼥");51 jb1 = new JButton("注册");52 jb2 = new JButton("取消");5354//设置布局管理器5556//JRadioButton添加ButtonGroup为⼀组57 bg.add(jrb1);58 bg.add(jrb2);5960//组件加到JPanel61 jPanel1.add(jlb1);62 jPanel1.add(jc1);63 jPanel1.add(jc2);64 jPanel1.add(jc3);65 jPanel2.add(jlb2);66 jPanel2.add(jrb1);67 jPanel2.add(jrb2);68 jPanel3.add(jb1);69 jPanel3.add(jb2);70//布局71this.setLayout(new GridLayout(3,1));7273//添加组件74this.add(jPanel1);75this.add(jPanel2);76this.add(jPanel3);7778//对窗体设置79this.setTitle("⽤户注册");80this.setSize(270,150);81this.setResizable(false);82this.setLocation(200,200);83this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 8485//显⽰86this.setVisible(true);878889 }9091 }⽤户调查界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉06⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;16import java.awt.*;17import javax.swing.*;1819//继承JFrame20public class Beekc extends JFrame{2122//定义组件23 JPanel jPanel1,jPanel2;24 JLabel jlb1,jlb2;25 JComboBox jcb;26 JList jl;27 JScrollPane jsp;2829public static void main(String[] args){30 Beekc beekc = new Beekc();31 }3233//构造函数34public Beekc(){35//创建组件36 jPanel1 = new JPanel();37 jPanel2 = new JPanel();38 jlb1 = new JLabel("籍贯");39 jlb2 = new JLabel("旅游地⽅");4041 String[] strJComboBox = {"北京","天津","⼴东"};42 jcb = new JComboBox(strJComboBox);4344 String[] strJLIst = {"故宫","天安门","长城","颐和园"};45 jl = new JList(strJLIst);46//设置显⽰多少个47 jl.setVisibleRowCount(3);48 jsp = new JScrollPane(jl);4950//设置布局管理器51//添加到JPanel52 jPanel1.add(jlb1);53 jPanel1.add(jcb);54 jPanel2.add(jlb2);55 jPanel2.add(jsp);5657this.setLayout(new GridLayout(1,2));5859//添加组件60this.add(jPanel1);61this.add(jPanel2);6263//对窗体设置64this.setTitle("⽤户调查");65this.setSize(270,110);66this.setResizable(false);67this.setLocation(200,200);68this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 6970//显⽰71this.setVisible(true);72 }7374 }翻译软件界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉06⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;16import java.awt.*;17import javax.swing.*;1819//继承JFrame20public class Beekc extends JFrame{2122//定义组件23 JSplitPane jsp;24 JList jList;25 JLabel jl1;2627public static void main(String[] args){28 Beekc beekc = new Beekc();29 }3031//构造函数32public Beekc(){33//创建组件34 String[] words = {"bird","boy","girl"};35 jList =new JList(words);36//new ImageIcon,存放图⽚37 jl1 = new JLabel(new ImageIcon("images/jinshanciba.png"));38//拆分窗体39 jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jList,jl1); 40//可以收缩41 jsp.setOneTouchExpandable(true);4243//设置布局管理器4445//添加组件46this.add(jsp);4748//窗体设置49this.setTitle("⾕歌翻译");50this.setSize(760,480);51this.setLocation(200,200);52this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);5354//显⽰55this.setVisible(true);56 }57 }聊天界⾯1/*2 * 作者:⽩客C3 * 时间:2020年03⽉06⽇4 * 内容:gui窗体5 * 步骤:6 * 1.继承JFrame容器7 * 2.定义需要的组件8 * 3.创建组件9 * 4.设置布局管理器10 * 5.添加组件11 * 6.对窗体设置12 * 7.显⽰窗体13*/1415package com.beekc.www;16import java.awt.*;17import javax.swing.*;1819//继承JFrame20public class Beekc extends JFrame{2122//定义组件23 JTextArea jTextArea;24 JScrollPane jScrollPane;25 JPanel jPanel;26 JTextField jTextField;27 JButton jButton;2829public static void main(String[] args){30 Beekc beekc = new Beekc();31 }3233//构造函数34public Beekc(){35//创建组件36 jTextArea = new JTextArea();37 jScrollPane = new JScrollPane(jTextArea);3839 jPanel = new JPanel();40 jTextField = new JTextField(20);41 jButton = new JButton("发送");4243//设置布局管理器44//添加到JPanel45 jPanel.add(jTextField);46 jPanel.add(jButton);4748//添加组件49this.add(jScrollPane);50this.add(jPanel,BorderLayout.SOUTH);5152//窗体设置53this.setTitle("聊天界⾯");54this.setIconImage((new ImageIcon("images\\qq.png")).getImage()); 55this.setSize(320,270);56this.setLocation(200,200);57this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);5859//显⽰60this.setVisible(true);61 }6263 }聊天登录界⾯。
当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。
JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout。
下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。
代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。
这些文件主要有三个方法组成:addComponentsToPane()提供布局逻辑(依据不同的布局管理器和UI内容)。
Java代码1public static void addComponentsToPane(Container pane) {。
}2/**3*createAndShowGUI()实例化一个JFrame,通过它的ContentPane加载布局逻辑内容。
4*/5private static void createAndShowGUI() {6// Create and set up the window.7JFrame frame = new JFrame("FlowLayoutDemo");8frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);9// Set up the content pane.10addComponentsToPane(frame.getContentPane());11// Display the window.12frame.pack();13frame.setVisible(true);14}15//main()程序入口,单独起一个线程,实例化UI。
16public static void main(String[] args) {17javax.swing.SwingUtilities.invokeLater(new Runnable() {18public void run() {19createAndShowGUI();20}21});22}FlowLayoutFlowLayout类是最简单的布局管理器。
java swing图形用户界面实例1:(文本区,菜单)import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyFrame1 extends JFrame{JTextArea area;JMenuBar bar;JMenu menu;JMenuItem itemCopy,itemCut,itemPaste;menuListen listen =new menuListen();MyFrame1(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){setLayout(new FlowLayout());area=new JTextArea(5,20);add(area);bar=new JMenuBar();setJMenuBar(bar);menu=new JMenu("编辑");bar.add(menu);itemCopy=new JMenuItem("复制");itemCut=new JMenuItem("剪切");itemPaste=new JMenuItem("粘贴");menu.add(itemCopy);menu.add(itemCut);menu.add(itemPaste);itemCopy.addActionListener(listen);itemCut.addActionListener(listen);itemPaste.addActionListener(listen);listen.setItem(itemCopy, itemCut, itemPaste, area);}public static void main(String[] args) {MyFrame1 win=new MyFrame1();}}class menuListen implements ActionListener{JMenuItem itemCopy,itemCut,itemPaste;JTextArea area;public void setItem(JMenuItem itemCopy,JMenuItem itemCut,JMenuItem itemPaste,JTextArea area){this.itemCopy=itemCopy;this.itemCut=itemCut;this.itemPaste=itemPaste;this.area=area;}public void actionPerformed(ActionEvent e){ if(e.getSource()==itemCopy){area.copy();}else if(e.getSource()==itemCut){area.cut();}else if(e.getSource()==itemPaste){area.paste();}}}实例2:(单选按钮,标签,按钮)import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyFrame2 extends JFrame{JTextArea area;JMenuBar bar;JMenu menu;JMenuItem itemCopy,itemCut,itemPaste;menuListen1 listen =new menuListen1();buttonListen lis=new buttonListen();JRadioButton r1,r2;JButton button;MyFrame2(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){setLayout(new FlowLayout());area=new JTextArea(5,20);add(area);bar=new JMenuBar();setJMenuBar(bar);menu=new JMenu("编辑");bar.add(menu);itemCopy=new JMenuItem("复制");itemCut=new JMenuItem("剪切");itemPaste=new JMenuItem("粘贴");menu.add(itemCopy);menu.add(itemCut);menu.add(itemPaste);itemCopy.addActionListener(listen);itemCut.addActionListener(listen);itemPaste.addActionListener(listen);listen.setItem(itemCopy, itemCut, itemPaste, area);add(new Label("班级:"));r1=new JRadioButton("信息管理1班",true);r2=new JRadioButton("信息管理2班");ButtonGroup group=new ButtonGroup();group.add(r1);group.add(r2);add(r1);add(r2);button=new JButton("确定");add(button);button.addActionListener(lis);lis.setArea(area,r1,r2);}public static void main(String[] args) {MyFrame2 win=new MyFrame2();}}class menuListen1 implements ActionListener{JMenuItem itemCopy,itemCut,itemPaste;JTextArea area;public void setItem(JMenuItem itemCopy,JMenuItem itemCut,JMenuItem itemPaste,JTextArea area){this.itemCopy=itemCopy;this.itemCut=itemCut;this.itemPaste=itemPaste;this.area=area;}public void actionPerformed(ActionEvent e){if(e.getSource()==itemCopy){area.copy();}else if(e.getSource()==itemCut){area.cut();}else if(e.getSource()==itemPaste){area.paste();}}}class buttonListen implements ActionListener{ JTextArea area;JRadioButton r1,r2;public void setArea(JTextArea area,JRadioButton r1,JRadioButton r2){this.area=area;this.r1=r1;this.r2=r2;}public void actionPerformed(ActionEvent e){ if(r1.isSelected()){area.setText("班级是:"+r1.getText());}if(r2.isSelected()){area.setText("班级是:"+r2.getText());}}}实例3:(选择框)import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyFrame3 extends JFrame{JTextArea area;JMenuBar bar;JMenu menu;JMenuItem itemCopy,itemCut,itemPaste;menuListen2 listen =new menuListen2();buttonListen1 lis=new buttonListen1();JRadioButton r1,r2;JButton button;JCheckBox box1,box2,box3,box4;MyFrame3(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){setLayout(new FlowLayout());area=new JTextArea(5,20);add(area);bar=new JMenuBar();setJMenuBar(bar);menu=new JMenu("编辑");bar.add(menu);itemCopy=new JMenuItem("复制");itemCut=new JMenuItem("剪切");itemPaste=new JMenuItem("粘贴");menu.add(itemCopy);menu.add(itemCut);menu.add(itemPaste);itemCopy.addActionListener(listen);itemCut.addActionListener(listen);itemPaste.addActionListener(listen);listen.setItem(itemCopy, itemCut, itemPaste, area);add(new Label("班级:"));r1=new JRadioButton("信息管理1班",true);r2=new JRadioButton("信息管理2班");ButtonGroup group=new ButtonGroup();group.add(r1);group.add(r2);add(r1);add(r2);add(new Label("爱好:"));box1=new JCheckBox("唱歌");box2=new JCheckBox("跳舞");box3=new JCheckBox("玩游戏");box4=new JCheckBox("看书");add(box1);add(box2);add(box3);add(box4);button=new JButton("确定");add(button);button.addActionListener(lis);}public static void main(String[] args) {MyFrame3 win=new MyFrame3();}class buttonListen1 implements ActionListener{ public void actionPerformed(ActionEvent e){if(r1.isSelected()){area.setText("班级是:"+r1.getText());}if(r2.isSelected()){area.setText("班级是:"+r2.getText());}area.append("\n爱好:");if(box1.isSelected())area.append(box1.getText());if(box2.isSelected())area.append(box2.getText());if(box3.isSelected())area.append(box3.getText());if(box4.isSelected())area.append(box4.getText());}}}class menuListen2 implements ActionListener{ JMenuItem itemCopy,itemCut,itemPaste;JTextArea area;public void setItem(JMenuItem itemCopy,JMenuItem itemCut,JMenuItem itemPaste,JTextArea area){ this.itemCopy=itemCopy;this.itemCut=itemCut;this.itemPaste=itemPaste;this.area=area;}public void actionPerformed(ActionEvent e){ if(e.getSource()==itemCopy){area.copy();}else if(e.getSource()==itemCut){area.cut();}else if(e.getSource()==itemPaste){area.paste();}}}实例4:布局import javax.swing.*;import java.awt.*;import static java.awt.BorderLayout.*;public class MyFrame4JButton a,b,c,d,e;public MyFrame4(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){/* setLayout(new BorderLayout());a=new JButton("aaaaa");b=new JButton("bbbbb");c=new JButton("ccccc");d=new JButton("ddddd");e=new JButton("eeeee");add(a,"East");add(b,"West");add(c,"North");add(d,"South");add(e,"Center");*//* setLayout(new FlowLayout());a=new JButton("aaaaa");b=new JButton("bbbbb");c=new JButton("ccccc");d=new JButton("ddddd");e=new JButton("eeeee");add(a);add(b);add(c);add(d);add(e);*//* setLayout(new GridLayout(3,2));a=new JButton("aaaaa");b=new JButton("bbbbb");c=new JButton("ccccc");d=new JButton("ddddd");e=new JButton("eeeee");add(a);add(b);add(c);add(d);add(e);*/JPanel panel=new JPanel(new GridLayout(2,1));a=new JButton("aaaaa");b=new JButton("bbbbb");c=new JButton("ccccc");d=new JButton("ddddd");e=new JButton("eeeee");add(panel);panel.add(a);JPanel p1=new JPanel(new GridLayout(1,2));panel.add(p1);p1.add(b);JPanel p2=new JPanel(new GridLayout(3,1));p1.add(p2);p2.add(c);p2.add(d);p2.add(e);}public static void main(String[] args) {MyFrame4 win=new MyFrame4();}}实例5:布局import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyFrame5 extends JFrame{JTextArea area;JMenuBar bar;JMenu menu;JMenuItem itemCopy,itemCut,itemPaste;menuListen3 listen =new menuListen3();buttonListen1 lis=new buttonListen1();JRadioButton r1,r2;JButton button;JCheckBox box1,box2,box3,box4;MyFrame5(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){JPanel panel=new JPanel(new GridLayout(2,1));add(panel);area=new JTextArea(5,20);panel.add(area);bar=new JMenuBar();setJMenuBar(bar);menu=new JMenu("编辑");bar.add(menu);itemCopy=new JMenuItem("复制");itemCut=new JMenuItem("剪切");itemPaste=new JMenuItem("粘贴");menu.add(itemCopy);menu.add(itemCut);menu.add(itemPaste);itemCopy.addActionListener(listen);itemCut.addActionListener(listen);itemPaste.addActionListener(listen);listen.setItem(itemCopy, itemCut, itemPaste, area);JPanel pan=new JPanel(new GridLayout(3,1));panel.add(pan);JPanel p1=new JPanel(new GridLayout(1,3));pan.add(p1);p1.add(new Label("班级:"));r1=new JRadioButton("信息管理1班",true);r2=new JRadioButton("信息管理2班");ButtonGroup group=new ButtonGroup();group.add(r1);group.add(r2);p1.add(r1);p1.add(r2);JPanel p2=new JPanel(new GridLayout(1,5));pan.add(p2);box1=new JCheckBox("唱歌");box2=new JCheckBox("跳舞");box3=new JCheckBox("玩游戏");box4=new JCheckBox("看书");p2.add(new Label("爱好:"));p2.add(box1);p2.add(box2);p2.add(box3);p2.add(box4);button=new JButton("确定");button.addActionListener(lis);JPanel p3=new JPanel(new FlowLayout());p3.add(button);pan.add(p3);}public static void main(String[] args) {MyFrame5 win=new MyFrame5();}class buttonListen1 implements ActionListener{ public void actionPerformed(ActionEvent e){if(r1.isSelected()){area.setText("班级是:"+r1.getText());}if(r2.isSelected()){area.setText("班级是:"+r2.getText());}area.append("\n爱好:");if(box1.isSelected())area.append(box1.getText());if(box2.isSelected())area.append(box2.getText());if(box3.isSelected())area.append(box3.getText());if(box4.isSelected())area.append(box4.getText());}}}class menuListen3 implements ActionListener{ JMenuItem itemCopy,itemCut,itemPaste;JTextArea area;public void setItem(JMenuItem itemCopy,JMenuItem itemCut,JMenuItem itemPaste,JTextArea area){ this.itemCopy=itemCopy;this.itemCut=itemCut;this.itemPaste=itemPaste;this.area=area;}public void actionPerformed(ActionEvent e){ if(e.getSource()==itemCopy){area.copy();}else if(e.getSource()==itemCut){area.cut();}else if(e.getSource()==itemPaste){area.paste();}}}。