【Java】Java绘图技术与事件处理机制,
分享于 点击 27600 次 点评:91
【Java】Java绘图技术与事件处理机制,
摘要:本文主要通过实例讲解Java中绘图技术与事件处理机制
// 此程序用来练习使用绘图技术!
// Version:1.0
// @Author:Yongchun_zha
package cha08;
import java.awt.*;
import javax.swing.*;
public class L8_1 extends JFrame
{
wdmb panl=null;
public static void main(String[] args)
{
L81 l81=new L8_1();
}
public L8_1()
{
panl=new wdmb();
this.add(panl);
this.setTitle("Layout");//设置用户界面
this.setSize(500,500);//设置窗口大小,数字代表像素
this.setLocation(300,260);//设置窗体位置
//this.setResizable(false);//设置窗体大小是否可调整
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程
this.setVisible(true);//true 显示,false不显示
}
}
class wdmb extends JPanel
{
public void paint(Graphics g)
{
//绘制图形
g.setColor(Color.CYAN);//设置颜色
g.drawOval(50, 50, 80, 80);
g.drawLine(100,100,200,200);
g.drawRect(100,100,200,200);
g.draw3DRect(200,200,400,400,true);
g.fillRect(10,10,20,20);//绘制填充图形
//绘制图像
Image tp=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/notebook.jpg"));
g.drawImage(tp,100,80,20,20,this);
//注:绘图用到的图片要拷贝到src目录下
//绘制文字
g.setColor(Color.RED);
g.setFont(new Font("华文彩云",Font.BOLD,50));
g.drawString("Hi,大家好",200,100);
}
//paint方法在以下三种情况下会被系统自动调用:①启动程序 ②窗口大小发生变化 ③调用repaint函数
}
事件监听
// 此程序用来练习使用事件监听! // Version:1.0 // @Author:Yongchun_zha package cha08; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class L8_2 extends JFrame implements ActionListener//接口实现监听 { wdmb2 pa=null; JButton bon1,bon2; public static void main(String[] args) { L82 l82=new L8_2(); } public L8_2() { pa=new wdmb2(); pa.setBackground(Color.CYAN); bon1=new JButton("红色"); bon2=new JButton("蓝色"); this.setLayout(new BorderLayout()); this.add(bon1,BorderLayout.NORTH); this.add(bon2, BorderLayout.SOUTH); this.add(pa); bon1.addActionListener(this);//this表示监听的是本类,按需添加所需监听的类即可 bon1.setActionCommand("111");//可以对多个类进行监听 bon2.addActionListener(this); bon2.setActionCommand("222"); this.setTitle("Layout");//设置用户界面 this.setSize(500,500);//设置窗口大小,数字代表像素 this.setLocation(300,260);//设置窗体位置 this.setResizable(false);//设置窗体大小是否可调整 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程 this.setVisible(true);//true 显示,false不显示 } public void actionPerformed(ActionEvent e)//接口的抽象构造函数 { System.out.println("按钮起作用了!"); if(e.getActionCommand().equals("111")) { System.out.println("红色红色"); pa.setBackground(Color.RED); } else if(e.getActionCommand().equals("222")) { System.out.println("蓝色蓝色"); pa.setBackground(Color.BLUE); } } } class wdmb2 extends JPanel { public void paint(Graphics g) { super.paint(g); } }
键盘监听
// 此程序用来练习使用事件监听! // Version:1.0 // @Author:Yongchun_zha package cha08; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class L8_3 extends JFrame { wdmb4 pan=null; public static void main(String[] args) { L83 l83=new L8_3(); } public L8_3() { pan=new wdmb4(); this.add(pan); this.addKeyListener(pan); this.setTitle("Layout");//设置用户界面 this.setSize(500,500);//设置窗口大小,数字代表像素 this.setLocation(300,260);//设置窗体位置 this.setResizable(false);//设置窗体大小是否可调整 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程 this.setVisible(true);//true 显示,false不显示 } } class wdmb4 extends JPanel implements KeyListener { int x=100, y=100; public void paint(Graphics g) { super.paint(g); g.fillRect(x,y,30,30); } public void keyTyped(KeyEvent e) { //有字符输出的函数 } public void keyPressed(KeyEvent e) { System.out.println("键盘被按下: "+(char)e.getKeyCode()); if(e.getKeyCode()==KeyEvent.VK_DOWN) { System.out.println("Down"); y+=10; } else if(e.getKeyCode()==KeyEvent.VK_UP) { System.out.println("Up"); y-=10; } else if(e.getKeyCode()==KeyEvent.VK_RIGHT) { System.out.println("Right"); x+=10; } else if(e.getKeyCode()==KeyEvent.VK_LEFT) { System.out.println("Left"); x-=10; } this.repaint(); } public void keyReleased(KeyEvent e) { //按键抬起 } }
鼠标监听
// 此程序用来练习使用鼠标监听! // Version:1.0 // @Author:Yongchun_zha package cha08; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class L8_4 extends JFrame { wdmb5 panl=null; public static void main(String[] args) { L84 l84=new L8_4(); } public L8_4() { panl=new wdmb5(); this.add(panl); this.addMouseListener(panl); this.addMouseMotionListener(panl); this.setTitle("Layout");//设置用户界面 this.setSize(500,500);//设置窗口大小,数字代表像素 this.setLocation(300,260);//设置窗体位置 this.setResizable(false);//设置窗体大小是否可调整 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程 this.setVisible(true);//true 显示,false不显示 } } class wdmb5 extends JPanel implements MouseListener,MouseMotionListener { public void paint(Graphics g) { super.paint(g); } public void mouseClicked(MouseEvent e) //鼠标单击 { System.out.print("鼠标点击的位置是: "); System.out.println("("+e.getX()+","+e.getY()+")"); } public void mousePressed(MouseEvent e) { System.out.println("鼠标被按下"); } public void mouseReleased(MouseEvent e) { System.out.println("鼠标被松开"); } public void mouseEntered(MouseEvent e) { System.out.println("鼠标移动到界面中"); } public void mouseExited(MouseEvent e) { System.out.println("鼠标离开界面"); } public void mouseDragged(MouseEvent e) { System.out.println("鼠标当前位置是:"); System.out.println("("+e.getX()+","+e.getY()+")"); } public void mouseMoved(MouseEvent e) { System.out.println("鼠标当前位置是:"); System.out.println("("+e.getX()+","+e.getY()+")"); } }
窗口监听
// 此程序用来练习使用窗口监听! // Version:1.0 // @Author:Yongchun_zha package cha08; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class L8_5 extends JFrame { Wdmb6 mb=null; public static void main(String[] args) { L85 lx=new L85(); } L8_5() { mb=new Wdmb6(); this.add(mb); this.addWindowListener(mb); this.setSize(400,300); this.setLocation(300,280); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } class Wdmb6 extends JPanel implements WindowListener { public void paint(Graphics g) { super.paint(g); } @Override public void windowOpened(WindowEvent e) { System.out.println("窗口打开"); } public void windowClosing(WindowEvent e) { System.out.println("窗口关闭"); } public void windowClosed(WindowEvent e) { } public void windowIconified(WindowEvent e) { System.out.println("最小化"); } public void windowDeiconified(WindowEvent e) { System.out.println("从最小化变成正常"); } public void windowActivated(WindowEvent e) { System.out.println("窗口被激活"); } public void windowDeactivated(WindowEvent e) { } }
相关文章
- 暂无相关文章
用户点评