Java17第十四章2-界面设计swing.ppt

上传人:wuy****n92 文档编号:70791356 上传时间:2023-01-28 格式:PPT 页数:49 大小:7.46MB
返回 下载 相关 举报
Java17第十四章2-界面设计swing.ppt_第1页
第1页 / 共49页
Java17第十四章2-界面设计swing.ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《Java17第十四章2-界面设计swing.ppt》由会员分享,可在线阅读,更多相关《Java17第十四章2-界面设计swing.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、安卓越科技(北京)有限公司第十四章第十四章2 2图形用户界面设计 安卓越科技(北京)有限公司回顾与作业点评回顾与作业点评事件处理机制 布局设计安卓越科技(北京)有限公司本章任务本章任务 掌握Swing容器和组件安卓越科技(北京)有限公司知识要点知识要点Swing容器和组件安卓越科技(北京)有限公司14.1抽象窗口工具集(抽象窗口工具集(AWT)用于设计与用户交互的图形界面用于设计与用户交互的图形界面14.1.1AWT组件和容器.AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是,中文译为抽象窗口工具包,是Java提供的用来建立提供的用来建立和设置和设置J

2、ava的图形用户界面的基本工具。的图形用户界面的基本工具。AWT由由Java中的中的java.awt包包提供,里面包含了许多可用来建立与平台无关的图形用户界面提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类的类,这些类又被称为组件,这些类又被称为组件(components)。1.Component和 Containercomponent 是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。典型图形用户界面中的按钮、复选框和滚动条都是组件示例。Container:一般的 AWT 容器对象,是一个可包含其他 AWT 组件的组件。安卓越科技(北京)有限公司 14.2

3、 Swingj介绍Swing是基于AWT的一组GUI组件的集合,其组件与操作系统无关,引入了许多新的特性和能力。1.JFrame类2.基本图形组件类JPanel、JButton等14.3 Swing组件应用1.JOptionPane组件:是标准对话框。安卓越科技(北京)有限公司Swing是在AWT基础上开发出的图形界面包安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)

4、有限公司14.3.2 菜单组件JMenuBar:菜单栏JMenu:菜单 JMenuItem:菜单项 JChecBoxMenuItem:带复选框的菜单项组件MyNotedpad.javaJPopupMenu:弹出式菜单组件安卓越科技(北京)有限公司 import java.awt.Color;import javax.swing.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;public class PopupMenuTest static JPopupMenu popup=null;public st

5、atic void main(String args)JFrame frame=new JFrame();frame.setBounds(200,300,200,300);frame.setTitle(我的第一个小板凳);/设置不允许调整窗口的大小frame.setResizable(false);frame.setBackground(Color.ORANGE);popup=new JPopupMenu();popup.add(徐明华);popup.add(张燕君);popup.add(徐诗佳);popup.add(王子昊);popup.setName(右击菜单);frame.add(pop

6、up);/在窗体上加右击菜单frame.addMouseListener(new MouseAdapter()public void mouseReleased(MouseEvent e)if(e.getButton()=MouseEvent.BUTTON3)popup.show(e.getComponent(),e.getX(),e.getY(););/添加事件监听器frame.setVisible(true);/显示窗体安卓越科技(北京)有限公司2.JColorChooser:颜色选择器,用于允许用户操作和选择颜色的控制器窗格。安卓越科技(北京)有限公司import java.awt.*;

7、import java.awt.event.*;import javax.swing.*;public class JColorChooserDemo implements ActionListener public static void main(String args)JFrame frame=new JFrame(JColorChooserDemo);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);MyPanel panel=new MyPanel();/Panel面板对象frame.getContentPane().add(p

8、anel);frame.pack();/自动调整大小frame.show();/窗体显示public void actionPerformed(ActionEvent e)class MyPanel extends JPanel implements ActionListener private JButton button,rgb,red,green,blue;/Buttonprivate Color color=new Color(0,0,0);/颜色对象public MyPanel()button=new JButton(Get Color);rgb=new JButton(RGB:);

9、red=new JButton(Red:);green=new JButton(Green:);blue=new JButton(Blue:);/面板上有五个按钮button.addActionListener(this);/添加事件setPreferredSize(new Dimension(550,250);setLayout(new FlowLayout(FlowLayout.CENTER,5,5);setBackground(color);/设置背景色add(button);add(rgb);add(red);/添加到面板上add(green);add(blue);public voi

10、d actionPerformed(ActionEvent e)color=JColorChooser.showDialog(this,Choose Color,color);setBackground(color);/从新设置背景button.setText(Get again);/重新设置button显示字rgb.setText(RGB:+color.getRGB();/设置得到RGBred.setText(Red:+color.getRed();/设置得到的红色green.setText(Green:+color.getGreen();blue.setText(Blue:+color.g

11、etBlue();安卓越科技(北京)有限公司3.界面基本组件JLabel JTextField JPasswordField JTextield JTextArea JButton JCheckBox JRadioButton JCombox JProgresBar SwingReigester.java4.JProgresBar进度条安卓越科技(北京)有限公司 import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swin

12、g.*;class BarThread extends Thread private int DELAY=100;private JProgressBar progressBar;/进度条类private JButton button;private boolean flag=true;public BarThread(JProgressBar bar,JButton button)progressBar=bar;this.button=button;public void run()/线程体button.setEnabled(false);int maximum=progressBar.ge

13、tMaximum();/最大值while(flag)try Thread.sleep(DELAY);/休眠100 catch(InterruptedException ignoredException)progressBar.setValue(progressBar.getValue()+1);if(progressBar.getValue()=maximum)/如果拿到值=最大值flag=false;button.setEnabled(true);public class JProgressBarTest public static void main(String args)final J

14、ProgressBar aJProgressBar=new JProgressBar(0,100);aJProgressBar.setStringPainted(true);final JButton aJButton=new JButton(Start);/按钮aJButton.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)if(aJProgressBar.getValue()=aJProgressBar.getMaximum()aJProgressBar.setValue(0)

15、;/事件如果达到最大值Thread stepper=new BarThread(aJProgressBar,aJButton);stepper.start(););JFrame frame=new JFrame(Progress Bars);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.add(aJProgressBar,BorderLayout.NORTH);frame.add(aJButton,BorderLayout.SOUTH);frame.setSize(300,100);frame.setVisible(tru

16、e);安卓越科技(北京)有限公司5 JToolBar 工具条 import java.awt.BorderLayout;import .URL;import javax.swing.*;public class JToolBarTest public static void main(String args)JToolBar bar=new JToolBar();JButton button1,button2,button3;URL url=Thread.currentThread().getContextClassLoader().getResource(left.jpg);URL url2

17、=Thread.currentThread().getContextClassLoader().getResource(center.jpg);URL url3=Thread.currentThread().getContextClassLoader().getResource(right.jpg);button1=new JButton(new ImageIcon(url);button1.setToolTipText(向前);button2=new JButton(new ImageIcon(url2);button2.setToolTipText(向上);button3=new JBut

18、ton(new ImageIcon(url3);button3.setToolTipText(向后);bar.add(button1);bar.add(button2);bar.add(button3);bar.setFloatable(true);JFrame frame=new JFrame();frame.setTitle(JToolBar工具条);frame.add(bar,BorderLayout.NORTH);frame.add(new JTextArea(),BorderLayout.CENTER);frame.setSize(400,400);frame.setDefaultC

19、loseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);安卓越科技(北京)有限公司安卓越科技(北京)有限公司public class SwingReigster extends JFrame public SwingReigster()this.init();public void init()this.setTitle(用户注册);this.setBounds(100,100,340,500);this.createUI();/改变感观/try/UIManager.setLookAndFeel(new WindowsClassic

20、LookAndFeel();/catch(UnsupportedLookAndFeelException e)/TODO Auto-generated catch block/e.printStackTrace();/this.setVisible(true);this.setDefaultCloseOperation(EXIT_ON_CLOSE);public void createUI()安卓越科技(北京)有限公司JPanel panel=new JPanel();/添加边框Border border=BorderFactory.createEtchedBorder(EtchedBorde

21、r.LOWERED);TitledBorder tBorder=BorderFactory.createTitledBorder(border,注册面板,TitledBorder.CENTER,TitledBorder.TOP);panel.setBorder(tBorder);panel.setLayout(null);this.add(panel);/名JLabel nameLbl=new JLabel(输入姓名:);nameLbl.setBounds(10,50,60,25);panel.add(nameLbl);JTextField nameTxt=new JTextField();n

22、ameTxt.setBounds(80,50,120,22);panel.add(nameTxt);/密码JLabel pwdLbl=new JLabel(输入密码:);pwdLbl.setBounds(10,80,60,25);panel.add(pwdLbl);JPasswordField pwd=new JPasswordField();安卓越科技(北京)有限公司pwd.setBounds(80,80,120,22);panel.add(pwd);/性别JLabel genderLbl=new JLabel(性别:);genderLbl.setBounds(10,110,60,25);p

23、anel.add(genderLbl);ButtonGroup group=new ButtonGroup();JRadioButton fRdo=new JRadioButton(男,true);fRdo.setBounds(80,110,50,25);group.add(fRdo);JRadioButton mRdo=new JRadioButton(女,false);mRdo.setBounds(140,110,50,25);group.add(mRdo);panel.add(fRdo);panel.add(mRdo);/学历JLabel ediLbl=new JLabel(学历:);e

24、diLbl.setBounds(10,140,60,25);panel.add(ediLbl);/下拉列表安卓越科技(北京)有限公司JComboBox edicbo=new JComboBox();edicbo.addItem(高中);edicbo.addItem(大专);edicbo.addItem(本科);edicbo.addItem(其它);edicbo.setBounds(80,140,80,22);panel.add(edicbo);/爱好JLabel hobbyLbl=new JLabel(爱好:);hobbyLbl.setBounds(10,170,60,25);panel.ad

25、d(hobbyLbl);/复选框JCheckBox hobbyChk=new JCheckBox(睡觉);hobbyChk.setBounds(80,170,60,25);panel.add(hobbyChk);JCheckBox hobbyChk2=new JCheckBox(运动,true);hobbyChk2.setBounds(150,170,60,25);panel.add(hobbyChk2);JCheckBox hobbyChk3=new JCheckBox(爬山);hobbyChk3.setBounds(220,170,60,25);panel.add(hobbyChk3);/

26、自我介绍安卓越科技(北京)有限公司JLabel intrLbl=new JLabel(自我介绍:);intrLbl.setBounds(10,200,60,25);panel.add(intrLbl);/Swing中,文本域默认是不带滚动条的,必须放置在JScrollPane中,才会滚动条JTextArea intrArea=new JTextArea();JScrollPane scrollPane=new JScrollPane(intrArea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBA

27、R_AS_NEEDED);scrollPane.setBounds(20,230,240,110);panel.add(scrollPane);/放置图片JLabel imgLbl=new JLabel();imgLbl.setBounds(5,350,324,47);panel.add(imgLbl);/URL url=/Thread.currentThread().getContextClassLoader().getResource(logo2.png);URL url=this.getClass().getResource(517.jpg);Icon icon=new ImageIco

28、n(url);imgLbl.setIcon(icon);/按钮JButton btn=new JButton(提交);安卓越科技(北京)有限公司btn.setBounds(50,420,70,22);btn.addActionListener(new ActionListener()public void actionPerformed(ActionEvent arg0)/*参数1:父组件 参数2:提示信息 参数3:标题信息 参数4:指定按钮类型 参数5:指定图标类型 返回值:*户所选选项的整数*/int option=JOptionPane.showConfirmDialog(null,你确

29、定提交吗?,提交提示,JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);if(option=JOptionPane.OK_OPTION)System.out.println(ok,submit!);else System.out.println(no,cancel););panel.add(btn);JButton btn2=new JButton(重置 );btn2.setBounds(150,420,70,22);panel.add(btn2);btn2.addActionListener(new ActionListene

30、r()安卓越科技(北京)有限公司public void actionPerformed(ActionEvent arg0)JFileChooser chooser=new JFileChooser();FileNameExtensionFilter filter=new FileNameExtensionFilter(JPG&GIF Images,jpg,gif);chooser.setFileFilter(filter);int returnVal=chooser.showOpenDialog(null);if(returnVal=JFileChooser.APPROVE_OPTION)Sy

31、stem.out.println(You chose to open this file:+chooser.getSelectedFile().getName();/JColorChooser chooser=new JColorChooser();/Color color=chooser.showDialog(null,请选择颜色,Color.BLACK););/*param args*/public static void main(String args)new SwingReigster();安卓越科技(北京)有限公司 安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北

32、京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司安卓越科技(北京)有限公司 2D图形的绘制安卓越科技(北京)有限公司 import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Graphics;import java.awt.Graphics2D;import java.a

33、wt.Shape;import java.awt.geom.AffineTransform;import java.awt.geom.Arc2D;import java.awt.geom.CubicCurve2D;import java.awt.geom.Ellipse2D;import java.awt.geom.Line2D;import java.awt.geom.QuadCurve2D;import java.awt.geom.Rectangle2D;import java.awt.geom.RoundRectangle2D;import javax.swing.JFrame;impo

34、rt javax.swing.JPanel;public class GraphicsShape2DDemo extends JFrame /主窗口类GraphicsShape2DDemo()super(常用图形的绘制与填充);/调用父类构造器设置窗口标题栏DrawPanel drawPanel=new DrawPanel();/创建DrawPanel对象用于绘制图形Container content=getContentPane();/获得窗口的内容窗格content.add(drawPanel,BorderLayout.CENTER);/把对象drawPanel加入内容窗格setSize(

35、400,300);/设置窗口大小setVisible(true);/设置窗口可视setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/关闭窗口时退出程序public static void main(String args)new GraphicsShape2DDemo();/创建GraphicsShapeDemo对象安卓越科技(北京)有限公司 DrawPanel extends JPanel/重载paintComponent()方法public void paintComponent(Graphics g)super.paintComponent(g

36、);/调用父类的绘制组件方法Graphics2D g2D=(Graphics2D)g;setBackground(Color.white);setForeground(Color.black);int charH=16;/最大字符高度int gridW=getWidth()/5;int gridH=getHeight()/4;/绘图网格高度int posX=2;/各图形绘制位置的x坐标int posY=2;/各图形位置的y坐标int strY=gridH-7;/字符串绘制位置的y坐标int w=gridW-2*posX;/图形的宽度int h=strY-charH-posY;/图形的高度int

37、 cirlceD=Math.min(w,h);/圆的直径Shape shape=new Shape25;shape00=new Line2D.Float(0,0,w,h);/直线shape01=new Rectangle2D.Double(0,0,w,h);/矩形shape02=new RoundRectangle2D.Float(0,0,w,h,20,20);/圆角矩形shape03=new Ellipse2D.Float(0,0,cirlceD,cirlceD);/圆shape04=new Ellipse2D.Float(0,0,w,h);/椭圆shape10=new Arc2D.Floa

38、t(0,0,w,h,45,225,Arc2D.OPEN);/开弧shape11=new Arc2D.Float(0,0,w,h,45,225,Arc2D.CHORD);/弓形shape12=new Arc2D.Float(0,0,w,h,45,225,Arc2D.PIE);/饼形shape13=new QuadCurve2D.Double(0,0,w,h/6,w,h);/二次曲线shape14=new CubicCurve2D.Double(0,0,w/2,h,w,h/2,w,h);/三次曲线/绘制几何图形的名称String shapeName=直线,矩形,圆角矩形,圆,椭圆,开弧,弓形,饼形

39、,二次曲线,三次曲线;安卓越科技(北京)有限公司AffineTransform defaultAT=g2D.getTransform();for(int i=0;ishapeName.length;i+)for(int j=0;jshapei.length;j+)g2D.setColor(Color.black);g2D.translate(posX,posY);/坐标平移g2D.draw(shapeij);g2D.setColor(Color.blue);g2D.drawString(shapeNameij,2,strY);/绘制说明文字g2D.setTransform(defaultAT);posY+=gridH;g2D.translate(posX,posY);g2D.setColor(Color.pink);g2D.fill(shapeij);g2D.setColor(Color.blue);g2D.drawString(填充+shapeNameij,2,strY);/文字g2D.setTransform(defaultAT);posX+=gridW;posY-=gridH;posX=2;posY+=2*gridH;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁