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

📄 draw.java

📁 Java程序设计实验与实训源代码经典的JAVA学习教材
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;


class Draw{
	public static void main(String[] args) {
		MyFrameFive myFrame=new MyFrameFive();
		myFrame.show();
	}
}

class MyFrameFive extends JFrame{
	MyFrameFive(){
		Container myContentPane=getContentPane();
		myContentPane.setLayout(new BorderLayout());
		myContentPane.add("North",new MyBoxPanel());
		myContentPane.add("Center",new MyJobPanel());
		setSize(600,400);
		addWindowListener(new QuitWindow());
	}
}

class MyBoxPanel extends JPanel implements ActionListener{
	private JComboBox typeBox;
	private JLabel choiceLabel;
	public static int select;
	
	MyBoxPanel(){
		choiceLabel=new JLabel("请选择你需要的图形:");
		
		typeBox=new JComboBox();
		typeBox.setEditable(false);
		typeBox.addItem("线");
		typeBox.addItem("矩形");
		typeBox.addItem("圆");
		typeBox.addItem("椭圆");
		typeBox.addActionListener(this);
		
		add(choiceLabel);
		add(typeBox);
	}
	
	public void actionPerformed(ActionEvent event){
		select=typeBox.getSelectedIndex();
	}
}

class MyJobPanel extends JPanel implements MouseMotionListener,MouseListener{
	private int mousex1,mousey1,mousex2,mousey2;
	
	MyJobPanel(){
		setBackground(Color.white);
		addMouseMotionListener(this);
		addMouseListener(this);
	}
	
	public void paintComponent(Graphics g){
		super.paintComponent(g);
		if(MyBoxPanel.select==0)
			g.drawLine(mousex1,mousey1,mousex2,mousey2);
		if(MyBoxPanel.select==1){
			if((mousex2-mousex1)<0&&(mousey2-mousey1)>0)
				g.drawRect(mousex2,mousey1,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
			if((mousex2-mousex1)<0&&(mousey2-mousey1)<0)
				g.drawRect(mousex2,mousey2,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
			if((mousex2-mousex1)>0&&(mousey2-mousey1)<0)
				g.drawRect(mousex1,mousey2,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
			if((mousex2-mousex1)>0&&(mousey2-mousey1)>0)
				g.drawRect(mousex1,mousey1,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
		}
		if(MyBoxPanel.select==2){
			int tmp=0;
			if(Math.abs(mousex2-mousex1)>Math.abs(mousey2-mousey1))
				tmp=Math.abs(mousex2-mousex1);
			else
				tmp=Math.abs(mousey2-mousey1);
				
			if((mousex2-mousex1)<0&&(mousey2-mousey1)>0)
				g.drawOval(mousex2,mousey1,tmp,tmp);
			if((mousex2-mousex1)<0&&(mousey2-mousey1)<0)
				g.drawOval(mousex2,mousey2,tmp,tmp);
			if((mousex2-mousex1)>0&&(mousey2-mousey1)<0)
				g.drawOval(mousex1,mousey2,tmp,tmp);
			if((mousex2-mousex1)>0&&(mousey2-mousey1)>0)
				g.drawOval(mousex1,mousey1,tmp,tmp);
			}
		if(MyBoxPanel.select==3){
			if((mousex2-mousex1)<0&&(mousey2-mousey1)>0)
				g.drawOval(mousex2,mousey1,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
			if((mousex2-mousex1)<0&&(mousey2-mousey1)<0)
				g.drawOval(mousex2,mousey2,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
			if((mousex2-mousex1)>0&&(mousey2-mousey1)<0)
				g.drawOval(mousex1,mousey2,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
			else
				g.drawOval(mousex1,mousey1,mousex2-mousex1,mousey2-mousey1);
			}
		}
		
	public void mousePressed(MouseEvent event){
	  if(event.getModifiers()==InputEvent.BUTTON1_MASK){
	  	mousex1=event.getX();
	  	mousey1=event.getY();
	  }
	}
	
	public void mouseClicked(MouseEvent event){
		
	}
	
	public void mouseReleased(MouseEvent event){
		
	}
	
	public void mouseEntered(MouseEvent event){
		
	}
	
	public void mouseExited(MouseEvent event){
		
	}
	
	public void mouseDragged(MouseEvent event){
		if(event.getModifiers()==InputEvent.BUTTON1_MASK){
			mousex2=event.getX();
			mousey2=event.getY();
			repaint();	
		}
	}
	
	public void mouseMoved(MouseEvent event){
			
	}
}
	

class QuitWindow extends WindowAdapter{
	public void windowClosing(WindowEvent e){
		System.exit(0);
	}
}

⌨️ 快捷键说明

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