⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydrawline2.java

📁 这个是JAVA程序基础书上第7章书实现的代码
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
 //实现ActionListener,主要是实现一个actionPerformed方法
class MyDrawLine2 extends Frame implements ActionListener{ 
	Button b1 = new Button("画线");
	MyCanvas c = new MyCanvas();
	public static void main(String[] args){
		new MyDrawLine2();
	}
	MyDrawLine2(){
		Frame f = new Frame();
		f.setLayout(new BorderLayout(0, 0));
		//增加一个窗口事件监听对象,以处理窗口事件,例如本程序中的关闭程序
		f.addWindowListener(new MyWindowListener());    
		f.add(b1, BorderLayout.EAST);
		b1.addActionListener(this);
		c.setSize(350, 200);
		c.setBackground(Color.blue);
		f.add(c, BorderLayout.CENTER);
		f.setTitle("在窗口内画直线!");
		f.setSize(400, 200);
		f.show();
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==b1){
			c.mode = 1;
		}
	}
}
class MyWindowListener extends WindowAdapter{
	public void windowClosing(WindowEvent e){
		System.exit(0);
	}
}
//实现MouseListener接口,主要实现mouseClicked方法,其它方法可以空实现
class MyCanvas extends Canvas implements MouseListener{  
	int x1=0, y1=0, x2, y2, mode=0;
	MyCanvas(){
		addMouseListener(this);
	}
	public void paint(Graphics g){
		g.setColor(Color.red);
		g.drawLine(x1, y1, x2, y2);
	}
	public void mouseClicked(MouseEvent e){  //在该方法中对画线坐标进行调整
		if (mode==1 && x1==0 && y1==0){
			x1 = e.getX();  y1 = e.getY();
			x2 = e.getX();  y2 = e.getY();
		}
		else if (mode==1){
			x1 = x2;  y1 = y2;
			x2 = e.getX();  y2 = e.getY();
			//getGraphics().setColor(Color.red);
			setForeground(Color.red);   //设置当前画布的前景颜色
			//获得当前画布的Graphics类对象,并在该对象上画线
			getGraphics().drawLine(x1, y1, x2, y2);  
		}
	
	}
	public void mousePressed(MouseEvent e){  //一下六个方法可以空实现
	}
	public void mouseReleased(MouseEvent e){
	}
	public void mouseEntered(MouseEvent e){
	}
	public void mouseExited(MouseEvent e){
	}
	public void mouseDragged(MouseEvent e){
	}
	public void mouseMoved(MouseEvent e){
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -