话不多说,上代码!!!
一:单选按钮
package 单选钮; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.*; public class demo01 implements ItemListener { JFrame frame; JRadioButton but1,but2,but3,but4,but5; JPanel pan1; ButtonGroup group1,group2; public demo01() { frame=new JFrame(); pan1=new JPanel(); but1=new JRadioButton("新浪"); but2=new JRadioButton("百度"); but3=new JRadioButton("谷歌"); but4=new JRadioButton("男"); but5=new JRadioButton("女"); group1=new ButtonGroup(); group2=new ButtonGroup(); but1.addItemListener(this); but2.addItemListener(this); but3.addItemListener(this); but4.addItemListener(this); but5.addItemListener(this); group1.add(but1); group1.add(but2); group1.add(but3); group2.add(but4); group2.add(but5); pan1.add(but1); pan1.add(but2); pan1.add(but3); pan1.add(but4); pan1.add(but5); frame.add(pan1); frame.setVisible(true); frame.pack(); } @Override public void itemStateChanged(ItemEvent event) { if(event.getSource()==but1) { if(event.getStateChange()==event.SELECTED) { JOptionPane.showMessageDialog(null, "您选择的是"+but1.getText()); } }else if(event.getSource()==but2) { if(event.getStateChange()==event.SELECTED) { JOptionPane.showMessageDialog(null, "您选择的是"+but2.getText()); } } else if(event.getSource()==but3) { if(event.getStateChange()==event.SELECTED) { JOptionPane.showMessageDialog(null, "您选择的是"+but3.getText()); } } else if(event.getSource()==but4) { if(event.getStateChange()==event.SELECTED) { JOptionPane.showMessageDialog(null, "您选择的是"+but4.getText()); } } else if(event.getSource()==but5) { if(event.getStateChange()==event.SELECTED) { JOptionPane.showMessageDialog(null, "您选择的是"+but5.getText()); } } } }
二:键盘监听器
import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.*; public class demo02 { private JTextArea text=new JTextArea(); JFrame frame=new JFrame("welcome to this"); public demo02() { JScrollPane scr=new JScrollPane(text); scr.setBounds(5,5,300,200); frame.add(scr); text.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent e) { text.append("键盘“"+KeyEvent.getKeyText(e.getKeyCode())+"”键松下\n"); } }); frame.setSize(300,200); frame.setVisible(true); } }
三:鼠标按钮监听器
package 单选钮; import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class demo extends JFrame { private JTextArea text=new JTextArea(); public demo() { super.setTitle("welcome to this"); JScrollPane scr =new JScrollPane(text); scr.setBounds(5,5,300,200); super.add(scr); text.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { int c=e.getButton(); String mouseInfo=null; if(c==MouseEvent.BUTTON1){ mouseInfo="左键"; }else if(c==MouseEvent.BUTTON3) { mouseInfo="右键"; }else { mouseInfo="滚轴"; } text.append("鼠标单击:"+mouseInfo+".\n"); } }); super.setSize(300,200); super.setVisible(true); } }
四:菜单栏,菜单,选项的添加与功能的实现
package 单选钮; import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class demo03 implements ActionListener { JFrame frame; JMenuBar bar; JMenu fileMenu,editMenu,formatMenu,searchMenu,helpMenu; JMenuItem newItem,openItem,saveItem,closeItem; JScrollPane scroll; JTextArea area; JFileChooser chooser; File file; public demo03() { frame=new JFrame("记事本"); bar=new JMenuBar(); fileMenu=new JMenu("文件"); editMenu=new JMenu("编辑"); formatMenu=new JMenu("格式"); searchMenu=new JMenu("查找"); helpMenu=new JMenu("帮助"); newItem=new JMenuItem("新建(N)"); openItem=new JMenuItem("打开(O)"); saveItem=new JMenuItem("另存为(A)"); closeItem=new JMenuItem("关闭(X)"); area=new JTextArea(); scroll=new JScrollPane(area); newItem.addActionListener(this); openItem.addActionListener(this); saveItem.addActionListener(this); closeItem.addActionListener(this); fileMenu.add(newItem); fileMenu.addSeparator(); fileMenu.add(openItem); fileMenu.addSeparator(); fileMenu.add(saveItem); fileMenu.addSeparator(); fileMenu.add(closeItem); newItem.setMnemonic(KeyEvent.VK_N); newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,java.awt.Event.CTRL_MASK)); openItem.setMnemonic(KeyEvent.VK_O); openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,java.awt.Event.CTRL_MASK)); saveItem.setMnemonic(KeyEvent.VK_A); saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,java.awt.Event.CTRL_MASK)); closeItem.setMnemonic(KeyEvent.VK_X); closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,java.awt.Event.CTRL_MASK)); frame.setJMenuBar(bar); frame.add(scroll); frame.setSize(400,300); frame.setVisible(true); bar.add(fileMenu); bar.add(editMenu); bar.add(formatMenu); bar.add(searchMenu); bar.add(helpMenu); } @Override public void actionPerformed(ActionEvent event) { Object obj=event.getSource(); if(obj instanceof JMenuItem) { JMenuItem item=(JMenuItem)obj; if(item==newItem) { new demo03(); }else if(item==openItem) { chooser=new JFileChooser(); chooser.showOpenDialog(null); file=chooser.getSelectedFile(); try { FileInputStream fis=new FileInputStream(file); try { byte[] b=new byte[fis.available()]; fis.read(b); area.append(new String(b)); fis.close(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } }else if(item==saveItem) { chooser=new JFileChooser(); chooser.showOpenDialog(null); file=chooser.getSelectedFile(); try { if(!file.exists()) { file.createNewFile(); } FileOutputStream fos=new FileOutputStream(file); byte[] b=area.getText().getBytes(); fos.write(b); fos.close(); } catch (IOException e) { e.printStackTrace(); } }else if(item==closeItem) { System.exit(1); } } } }
课后总结
一:对于鼠标与键盘的监听让我思考游戏的开发的方向的移动利用键盘监听,在鼠标监听中去添加事件的选项,实现其功能。
二:对于菜单栏,菜单,选项栏中可以做一些简单的记事本等都是可以的。
三:对于这些代码都是需要深刻理解,借助老师的代码先让它实现一部分功能,后续的其他功能及美化都是需要自己摸索的,先让老师的代码做个模范作用。