这周主要是学习了监听器还有制作记事本,主要可以由一下代码来体现

监听器

实验代码

package text12;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Panel;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Vector; import javax.swing.*;
public class Text12 extends JFrame implements ItemListener/* KeyListener,MouseListener*/ { JTextArea ta;
JScrollPane sp;
JRadioButton pb,pb1,pb2;
ButtonGroup group;
JLabel la,la1;
JPanel pane;
JCheckBox cb,cb1;
Container con;
JList list,list1;
String tv[] = {"美剧","韩剧","日剧","泰剧","港剧"};
Vector<String> v; public Text12() { this.setTitle("监听器");
v=new Vector<String>();
v.add("男");
v.add("女");
list=new JList(tv);
list1=new JList(v);
list.setBorder(BorderFactory.createTitledBorder("喜欢看哪个国家的剧"));
list1.setBorder(BorderFactory.createTitledBorder("性别"));
list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); con=this.getContentPane();
cb=new JCheckBox("舒畅");
cb1=new JCheckBox("杨蓉");
pane=new JPanel(new FlowLayout(FlowLayout.LEFT));
pane.setBorder(BorderFactory.createTitledBorder("调查表"));
la=new JLabel("最喜欢的男明星是: ");
la1=new JLabel("最喜欢的女明星是: ");
pb=new JRadioButton("朱一龙");
pb1=new JRadioButton("肖战");
pb2=new JRadioButton("邓伦");
group=new ButtonGroup();
group.add(pb);
group.add(pb1);
group.add(pb2);
pane.add(la);
pane.add(pb);
pane.add(pb1);
pane.add(pb2); pane.add(la1);
pane.add(cb);
pane.add(cb1); pane.add(list);
pane.add(list1);
pb.addItemListener(this);
pb1.addItemListener(this);
pb2.addItemListener(this);
con.add(pane);
// ta=new JTextArea(4,5);
// sp=new JScrollPane(ta,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
// ta.addKeyListener(this);
// ta.addMouseListener(this); this.pack();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
} public static void main(String[] args) {
new Text12(); } @Override
public void itemStateChanged(ItemEvent e) {
if(e.getSource()==pb) {
System.out.println(pb.getText());
} } /* @Override
public void keyTyped(KeyEvent e) {
ta.append(e.getKeyChar()+"\n"); } @Override
public void keyPressed(KeyEvent e) {
ta.append(e.getKeyCode()+"\n"); } @Override
public void keyReleased(KeyEvent e) {
ta.append(KeyEvent.getKeyText(e.getKeyCode())+"\n"); } @Override
public void mouseClicked(MouseEvent e) {
int c=e.getButton();
String mouse;
if(c==MouseEvent.BUTTON1) {
mouse="左键";
}else if(c==MouseEvent.BUTTON3){
mouse="右键";
}else {
mouse="中键";
}
ta.append(mouse); } @Override
public void mousePressed(MouseEvent e) {
int a=e.getClickCount();
ta.append(a+"\n"); } @Override
public void mouseReleased(MouseEvent e) {
String str=MouseEvent.getMouseModifiersText(WIDTH);
ta.append(str); } @Override
public void mouseEntered(MouseEvent e) {
int x=e.getX();
int y=e.getY();
ta.append("("+x+","+y+")"); } @Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub }
*/
}

运行截图

记事本

package jishiben;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
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; import javax.swing.*;
import javax.swing.undo.UndoManager; public class Jishiben implements ActionListener{ JFrame frame;
JTextArea text;
JScrollPane sp;
JMenuItem newItem,windomItem,openItem,saveItem,othersaveItem,pagesetupItem,printItem,closeItem;
JMenuBar bar;
JMenu fileMenu,editMenu,formatMenu,checkMenu,helpMenu;
JFileChooser choose;
File file;
JTable table;
JMenuItem blankItem;
UndoManager undoManager; public void Wenjian() { frame=new JFrame("记事本");
text=new JTextArea();
sp=new JScrollPane(text);
bar=new JMenuBar(); fileMenu=new JMenu("文件(F)");
editMenu=new JMenu("编辑(E)");
formatMenu=new JMenu("格式(O)");
checkMenu=new JMenu("查看(V)");
helpMenu=new JMenu("帮助(H)"); //关于文件的选项
newItem=new JMenuItem("新建(N)");
windomItem=new JMenuItem("新窗口(W)");
openItem=new JMenuItem("打开(O)");
saveItem=new JMenuItem("保存(S)");
othersaveItem=new JMenuItem("另存为(A)");
pagesetupItem=new JMenuItem("页面设置(U)");
printItem=new JMenuItem("打印(P)");
closeItem=new JMenuItem("退出(X)"); //关于文件助记符的设置
newItem.setMnemonic('N');
windomItem.setMnemonic('W');
openItem.setMnemonic('O');
saveItem.setMnemonic('S');
othersaveItem.setMnemonic('A');
pagesetupItem.setMnemonic('U');
printItem.setMnemonic('P');
closeItem.setMnemonic('X'); //关于文件快捷键的设置
newItem.setAccelerator(KeyStroke.getKeyStroke('N',KeyEvent.CTRL_DOWN_MASK));
windomItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke('O',KeyEvent.CTRL_DOWN_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke('S',KeyEvent.CTRL_DOWN_MASK));
othersaveItem.setAccelerator(KeyStroke.getKeyStroke('S',KeyEvent.CTRL_DOWN_MASK|KeyEvent.SHIFT_DOWN_MASK));
printItem.setAccelerator(KeyStroke.getKeyStroke('P',KeyEvent.CTRL_DOWN_MASK)); //关于文件菜单的动作监听
newItem.addActionListener(this);
windomItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
othersaveItem.addActionListener(this);
pagesetupItem.addActionListener(this);
printItem.addActionListener(this);
closeItem.addActionListener(this); fileMenu.add(newItem);
fileMenu.add(windomItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(othersaveItem);
fileMenu.add(pagesetupItem);
fileMenu.add(closeItem); //向菜单栏添加
bar.add(fileMenu);
bar.add(editMenu);
bar.add(formatMenu);
bar.add(checkMenu);
bar.add(helpMenu); frame.add(sp);
frame.setJMenuBar(bar);
frame.setSize(400,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) {
Jishiben shi=new Jishiben();
shi.Wenjian(); }
public void actionPerformed(ActionEvent e){
//关于文件下面选项的监听
if(e.getSource()==newItem) {
text.setText("");
}else if(e.getSource()==windomItem) {
Jishiben ben =new Jishiben();
ben.Wenjian();
}else if(e.getSource()==openItem) {
choose=new JFileChooser();
choose.showOpenDialog(null);
file=choose.getSelectedFile();
try {
FileInputStream input=new FileInputStream(file);
byte[] b=new byte[input.available()];
input.read(b);
text.append(new String(b));
input.close(); } catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(e.getSource()==othersaveItem) {
choose=new JFileChooser();
choose.showOpenDialog(null);
file=choose.getSelectedFile();
try {
if(!file.exists()) {
file.createNewFile();
}
FileOutputStream output=new FileOutputStream(file);
byte[] b=text.getText().getBytes();
output.write(b);
output.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(e.getSource()==saveItem) {
choose=new JFileChooser();
choose.showOpenDialog(null);
file=choose.getSelectedFile();
try {
FileOutputStream output=new FileOutputStream(file);
byte[] b=text.getText().getBytes();
output.write(b);
output.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(e.getSource()==pagesetupItem) { }else if(e.getSource()==printItem) { }else if(e.getSource()==closeItem) {
System.exit(1);
}
} }

运行截图

主要学习监听器及各种事件处理

1)键盘监听

使用KeyListener接口

2)鼠标监听

使用MouseListener接口,其中MouseEvent中有getButton(),getX(),getY()等方法

3)单选钮:JRadioButton及事件处理

方法:

setSelected();是否被选中

setText(String);设置显示文本

setIcon(Icon);设置图片

其事件处理使用ItenListener

4)复选框:JCheckBoxji事件处理

方法:

JCheckBox();创建文本对象

其事件处理也是用ItemListener接口

5)列表框:JList及事件处理

方法:

int[] getSeletrdIndices();返回所选择的所有数组

Jlist(ListModel/Object[] listData/Vector<?>listData);构造JList

其事件处理使用ListSelectionListener接口

菜单组件

JMenu、JMenuBar、JMenuItem可实现简单的菜单外观,使用事件监听可对应作出一些功能的实现,如代码记事本

2019Java第十三周课程总结的更多相关文章

  1. “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排

    “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排1. 图形界面事件处理技术是Java GUI编程核心技术,要求同学们掌握其基本原理和基本编程模型:2. 本周四理论课 ...

  2. C语言程序设计I—第十三周教学

    第十二周教学总结(26/11-01/12) 第十三周的教学总结在朋友圈发布了,没有及时在此更新,为了保持教学总结的完整性,现补齐. 今日学院有重大外事活动,所有老师停课参加并且不需要补课,但为了保证我 ...

  3. 201871010123-吴丽丽《面向对象程序设计(Java)》第十三周学习总结

    201871010123-吴丽丽<面向对象程序设计(Java)>第十三周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  4. 201271050130-滕江南-《面向对象程序设计(java)》第十三周学习总结

      201271050130-滕江南-<面向对象程序设计(java)>第十三周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daiz ...

  5. 201871010104-陈园园 《面向对象程序设计(java)》第十三周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第十三周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  6. 201871010105-曹玉中《面向对象程序设计(java)》第十三周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第十三周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  7. 201871010106-丁宣元 《面向对象程序设计(java)》第十三周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第十三周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...

  8. 201871010107-公海瑜《面向对象程序设计(java)》第十三周学习总结

    201871010107-公海瑜<面向对象程序设计(java)>第十三周学习总结            项目                      内容   这个作业属于哪个课程   ...

  9. 201871010128-杨丽霞《面向对象程序设计(java)》第十三周学习总结

    201871010128-杨丽霞<面向对象程序设计(java)>第十三周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

随机推荐

  1. 今天发布MVC项目一直找不到页面

    刚开始以为是framwork版本太高,服务器没安装. 后面想到应用池版本忘记选了

  2. linux端口控制(开放-禁止)

    禁止访问80端口iptables -I INPUT -p tcp --dport 80 -j DROP 允许ip为192.168.1.1的机器访问iptables -I INPUT -p tcp -s ...

  3. centos7网络配置脚本

    如下参数根据实际情况修改 #!/bin/bash #设置网络环境 sed -i -e 's|BOOTPROTO=dhcp|BOOTPROTO=static|' /etc/sysconfig/netwo ...

  4. 从程序员小仙飞升上神,java技术开发要如何实现?

    新霸哥是一个专业从事java开发的,近期,新霸哥发现很多的朋友在问,从程序员小仙飞升上神难吗?在此新霸哥将为你详细的介绍,下面新霸哥将从新手入门和老司机进阶多方面详细的为大家介绍一下. 说起java首 ...

  5. 前端开发 | 尝试用Markdown写一下近几个月的总结

    近期总结 回顾 半年前 半年前,接触了前端一年多(工作半年)的我了解的东西只有下面这些.因为在公司里的工作就是切静态页,捣鼓CMS. HTML (比较简洁的编写HTML) CSS/CSS3 (PC兼容 ...

  6. 从一道索引数据结构面试题看B树、B+树

    题目1: Mysql数据库用过吧?l里面的索引是基于什么数据结构. 答:主要是基于Hash表和B+树 题目2: 很好请你说一下B+树的实现细节是什么样的?B-树和B+树有什么区别?联合索引在B+树中如 ...

  7. 二,kubernetes集群的安装初始化

    目录 部署 集群架构示意图 部署环境 kubernetes集群部署步骤 基础环境 基础配置 安装基础组件 配置yum源 安装组件 初始化 master 设置docker和kubelet为自启动(nod ...

  8. Centos 7安装部署zabbix 3.0LTS

    1.环境准备 OS:CentOS 7.2 64bit Zabbix版本:3.0.12 MySQL版本:5.6 注意:zabbix3.0相关要求 mysql5.0以上版本.apache1.3以上版本.p ...

  9. java8学习之Collector源码分析与收集器核心

    之前已经对流在使用上已经进行了大量应用了,也就是说对于它的应用是比较熟悉了,但是比较欠缺的是对于它底层的实现还不太了解,所以接下来准备大量通过阅读官方的javadoc反过来加深对咱们已经掌握这些知识更 ...

  10. 为了保护dll这么做吗?

    生成dll时候 附带生成的lib文件