




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、例13.16/filename App13_16.javaimport java.awt.*;import javax.swing.*;import javax.swing.event.*;public class App13_16 extends JFrame implements ChangeListenerprivate JSlider rSlider,gSlider,bSlider; /声明三个JSlider对象private JTextArea ta=new JTextArea();private int r,g,b;public App13_16(String s)super(s)
2、;rSlider=new JSlider(JSlider.VERTICAL,0,255,0); /创建垂直滑动条rSlider.setMajorTickSpacing(50); /设置主刻度值间隔rSlider.setMinorTickSpacing(10); /设置次刻度值间隔rSlider.setPaintTicks(true); /设置显示两种刻度线rSlider.setPaintLabels(true); /设置显示主刻度值add(rSlider,BorderLayout.WEST); /将JSlider对象rSlider放置在窗口西边gSlider=new JSlider(JSlid
3、er.HORIZONTAL,0,255,0);gSlider.setMajorTickSpacing(50);gSlider.setMinorTickSpacing(10);gSlider.setPaintTicks(true);gSlider.setPaintLabels(true);add(gSlider,BorderLayout.SOUTH);bSlider=new JSlider(JSlider.VERTICAL,0,255,0);bSlider.setMajorTickSpacing(50);bSlider.setMinorTickSpacing(10);bSlider.setPai
4、ntTicks(true);bSlider.setPaintLabels(true);add(bSlider,BorderLayout.EAST);add(ta,BorderLayout.CENTER);rSlider.addChangeListener(this); /设置本窗口为rSlider对象的监听者gSlider.addChangeListener(this);bSlider.addChangeListener(this);setSize(300,200);public static void main(String args)App13_16 frm=new App13_16(&q
5、uot;滑动条应用程序");frm.setVisible(true);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void stateChanged(ChangeEvent e) /设置值变化事件处理程序代码r=rSlider.getValue(); /返回滑块rSlider当前所在位置的值g=gSlider.getValue();b=bSlider.getValue();ta.setBackground(new Color(r,g,b); /用返回的颜色值设置文本区背景色ta.setText("nn
6、现在(红,绿,蓝)三色的值是("+r+","+g+","+b+")");例13.17/利用"文件打开对话框"打开待编辑的文件,编辑完成后再利用文件保存对话框保存编辑后的文件/filename App13_17.javaimport java.awt.*;import java.io.*;import java.util.Scanner;import java.awt.event.*;import javax.swing.*;public class App13_17 extends JFrame impl
7、ements ActionListenerprivate JTextArea ta=new JTextArea(10,20);private JFileChooser jfc=new JFileChooser(new File("."); /创建文件选择对话框对象jfcprivate JButton bOpen,bSave;public App13_17()super("文件选择框应用程序");JScrollPane ps=new JScrollPane(ta); /创建滚动窗格对象,其显示内容是文本区对象tabOpen=new JButton(&quo
8、t;选取");bSave=new JButton("存盘");setLayout(new FlowLayout(FlowLayout.CENTER,15,10);add(ps); add(bOpen); add(bSave);bOpen.addActionListener(this); /设置窗口中的按钮的监听者为本窗口bSave.addActionListener(this);setVisible(true);setSize(300,280);public static void main(String args)App13_17 frm=new App13_1
9、7();frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actionPerformed(ActionEvent e) /处理单击事件的程序代码JButton jbt=(JButton)e.getSource();if(jbt=bOpen) /如果单击的是窗口中的"选取"按钮int status=jfc.showOpenDialog(this); /创建并显示打开类型的文件选择对话框if(status!=JFileChooser.APPROVE_OPTION) /单击的不是文件选择对话框的"
10、;打开"按钮ta.setText("没有选择文件");elsetryFile file1=jfc.getSelectedFile(); /将被选中的文件保存为文件对象file1Scanner scan=new Scanner(file1); /用file1创建一个Scanner对象scanString info=""while(scan.hasNext() /判断文件中是否还有数据String str=scan.nextLine(); /每次读取一行info+=str+"rn" /每读取一行,则在其后面加回车符和换行符ta.
11、setText(info); /将读取到的数据放入文本区ta中catch(FileNotFoundException ioe);else /如果单击的是窗口的"存盘"按钮bSaveint re=jfc.showSaveDialog(this); /创建并显示保存类型的文件选择对话框if(re=JFileChooser.APPROVE_OPTION); /如果单击文件对话框中的"保存"按钮tryFile file2=jfc.getSelectedFile(); /返回用于保存文件的对象FileOutputStream f=new FileOutputStr
12、eam(file2);BufferedOutputStream out=new BufferedOutputStream(f);byte b=(ta.getText().getBytes(); /将ta中的内容转换为字节,存入字节数组b中out.write(b,0,b.length); /将数组b中的全部内容写入到流out所对应的文件中out.close();catch(IOException ioe);例13.18/*题目:调色板程序设计,在窗口中显示已标签和一个调色板,让用户在其中选择颜色来改变窗口背景颜色。由于选择颜色会触发java.swing.event.ChangeEvent事件类所
13、表示的变化事件,所以必须实现ChangeListener接口中的stateChanged()方法来对颜色值发生变化的事件进行处理。*/filename App13_18.javaimport java.awt.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.colorchooser.*;public class App13_18 extends JFrameDefaultColorSelectionModel model=new DefaultColorSelectionModel(); /设置颜色选择模
14、式JColorChooser colorChooser=new JColorChooser(model); /创建JColorChooser对象colorChooserJLabel Label=new JLabel("请选择颜色来改变背景色",JLabel.CENTER);Font font1=new Font("楷体",Font.ITALIC|Font.BOLD,30); /设置字体Color newColor;public static void main(String args)App13_18 frm=new App13_18();frm.set
15、Title("颜色调色板应用");frm.setSize(600,400);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible(true);public App13_18() /构造方法Label.setFont(font1);add(Label,BorderLayout.NORTH);add(colorChooser,BorderLayout.CENTER);model.addChangeListener(new ChangeLis(); /为调色板设置监听者class ChangeLis i
16、mplements ChangeListenerpublic void stateChanged(ChangeEvent e) /选择颜色时会产生ChangeEvent事件newColor=colorChooser.getColor();getContentPane().setBackground(newColor); /重新设置窗口背景颜色例13.19/*定时器应用。在窗口中放置两个按钮和一个标签,当单击"开始"按钮时,标签就会在窗口中从右向左滚动,当单击"停止"按钮时,标签则停止滚动。*/filename App13_19.javaimport ja
17、va.awt.*;import javax.swing.*;import java.awt.event.*;public class App13_19 extends JFramestatic Timer timer;static JLabel lab=new JLabel("我是滚动字幕");static JButton bt1=new JButton("开始");static JButton bt2=new JButton("停止");static int moveX,moveY;static App13_19 frm=null;
18、public static void main(String args)frm=new App13_19();timer=new Timer(50,new TimerListener(2); /创建计时器对象并设置其监听者frm.setLayout(null);frm.setSize(300,200);frm.add(lab);frm.add(bt1);frm.add(bt2);Font font1=new Font("楷体",Font.ITALIC|Font.BOLD,20);lab.setFont(font1);lab.setBounds(100,100,150,30)
19、;bt1.setBounds(50,50,80,30);bt2.setBounds(150,50,80,30);bt1.addActionListener(new TimerListener(0); /设置"开始"按钮的监听者bt2.addActionListener(new TimerListener(1); /设置"停止"按钮的监听者moveX=lab.getLocation().x; /获取标签lab的x坐标moveY=lab.getLocation().y; /获取标签lab的y坐标frm.setTitle("定时器应用程序"
20、);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible(true);private static class TimerListener implements ActionListenerint select;public TimerListener(int select) /内部类的构造方法this.select=select;public void actionPerformed(ActionEvent e)if(select=0)timer.start(); /单击"开始"按钮的处理操作e
21、lse if(select=1)timer.stop(); /单击"停止"按钮的处理操作else if(select=2) /计时器触发的处理操作if(moveX>-lab.getWidth()moveX-=3; /若标签没有移出窗口左边界横坐标减3else moveX=frm.getWidth(); /若标签右边界移出窗口左边,重置横坐标lab.setLocation(moveX,moveY); /用新坐标设置标签的位置例14.3/*在进行交互式作图时,用数组来保存拖动鼠标时产生的轨迹坐标,使得当将绘图窗口最小化或被其他窗口遮挡住然后又使他们重现时,利用保存在数组中
22、的数据和paintComponent()方法还原图形*/filename App14_3.java 手工绘画程序import java.awt.*;import java.awt.event.*;import javax.swing.*;public class App14_3 extends JFrameprivate int x1,y1,x2,y2;private int p=new int10004; /定义二维数组用于保存画图时点的坐标private int index=0;private NewPanel panel=new NewPanel(); /定义"画布"
23、对象panel用于手工绘图App14_3()setTitle("交互式绘图");setBounds(10,10,250,200);add(panel);public static void main(String args)App14_3 frm=new App14_3();frm.setVisible(true);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);private class NewPanel extends JPanel /定义父类为JPanel的子类NewPanelpublic NewPanel()th
24、is.addMouseMotionListener(new MyMouseMotionListener(); /设置面板的监听者this.addMouseListener(new MyMouseListener();public void paintComponent(Graphics g)super.paintComponent(g); /调用父类JPanel的paintComponent()方法for(int i=0;i<index-1;i+)g.drawLine(pi0,pi1,pi2,pi3); /用保存在数组元素中的值为坐标划线class MyMouseListener ext
25、ends MouseAdapterpublic void mousePressed(MouseEvent e)x1=e.getX(); /取得鼠标按下时的x坐标,作为起点的x坐标y1=e.getY(); /取得鼠标按下时的y坐标,作为起点的y坐标class MyMouseMotionListener extends MouseMotionAdapterpublic void mouseDragged(MouseEvent e) /用鼠标拖动事件源的处理操作x2=e.getX(); /取得拖动鼠标时的x坐标y2=e.getY(); /取得拖动鼠标时的y坐标pindex0=x1; /将线段的坐标保
26、存在数组元素中pindex1=y1;pindex2=x2;pindex3=y2;index+;repaint(); /用repaint()方法调用paintComponent()方法重新绘图x1=x2; /更新绘线起点的坐标y1=y2;例14.4/*编辑一个绘制椭圆的交互式程序,绘制椭圆时,其大小由鼠标拖动来完成。*/filename App14_4import java.awt.*;import java.awt.event.*;import javax.swing.*;public class App14_4 extends JFrame implements MouseMotionListener,MouseListenerstatic App14_4 frm=new App14_4();int px1,py1,px2,py2,status=0;int rpx1,rpy1,rpx2,rpy2;public static void main(String args)frm.setTitle("鼠标拖动画椭圆");frm.setS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 持久记忆税法考试试题及答案
- Msoffice常见错误解析试题及答案
- WPS工作管理与计划制定试题及答案
- WPS图文搭配技巧试题及答案
- 2025年现代汉语考试特色试题及答案
- 经典试题及答案备战2025年计算机一级
- 2025年税法考试时效性试题及答案解析
- 城市轨道交通智慧运维系统2025年创新技术应用案例分析报告
- 精益开发理念试题及答案
- 2025年工业互联网平台量子通信技术在智能穿戴设备中的预研报告
- 无废城市知识培训课件
- 2025煤炭矿区水土保持监测技术服务合同书
- 2024年山东枣庄技师学院招聘考试真题
- 五金产品购销合同清单
- 2024年全国高中数学联赛(四川预赛)试题含答案
- 东北三省精准教学联盟2024-2025学年高三下学期3月联考地理试题(含答案)
- 2024北京西城区初一(下)期末道法试题和答案
- 空调安装施工方案
- 英语-湖北省武汉市2025届高中毕业生二月调研考试(武汉二调)试题和答案
- 静脉留置针留置护理
- GB/T 45140-2025红树林生态修复监测和效果评估技术指南
评论
0/150
提交评论