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

📄 复件 byc.java

📁 java绘图程序
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.colorchooser.*;
import javax.swing.filechooser.*;
import java.io.*;

public class byc
{
	
	public static void main(String[] args)
	{
		try {
      UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
    }
    catch(Exception e) {
      e.printStackTrace();
    }
		
		
		MouseFrame frame = new MouseFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		frame.show();
	}
}
class MouseFrame extends JFrame
{
	DefaultColorSelectionModel model=new DefaultColorSelectionModel();
	JColorChooser colorchooser=new JColorChooser(model);
	
	JMenuBar jMenuBar1 = new JMenuBar();
	
	
  JMenu jMenuFile = new JMenu();
  JMenu jMenuHelp=new JMenu();
  JMenuItem jMenuFileExit = new JMenuItem();
  JMenuItem jMenuFileSave=new JMenuItem();
  JMenuItem jMenuAbout=new JMenuItem();
  

	JButton button[]=new JButton[4];
	JToolBar toolbar=new JToolBar();
	
	int x1=0,y1=0,x2=0,y2=0;
   	Color color;
   	int m=3;
	public MouseFrame()
	{
		setTitle("画图程序");
		setSize(800, 500);
		button[0]=new JButton("点");
		button[1]=new JButton("线");
		button[2]=new JButton("圆");
		button[3]=new JButton("矩形");
		
		
		
		
		
		jMenuFile.setText("File");
		jMenuHelp.setText("Help");
    	jMenuFileExit.setText("Exit");
    	jMenuFileSave.setText("Save");
    	jMenuAbout.setText("About");
    	jMenuFileExit.addActionListener(new MousePanel());
		jMenuFileSave.addActionListener( new MousePanel());
		jMenuAbout.addActionListener(new MousePanel());
		
		
		jMenuFile.add(jMenuFileExit);
    	jMenuFile.add(jMenuFileSave);
    	jMenuHelp.add(jMenuAbout);
    	jMenuBar1.add(jMenuFile);
    	jMenuBar1.add(jMenuHelp);
		
		
		
		for(int i=0;i<4;i++)
		{
		toolbar.add(button[i]);
		button[i].addActionListener(new MousePanel());
	    }


		MousePanel panel = new MousePanel();
		
		JPanel p1=new JPanel();
		JPanel p2=new JPanel();
		JPanel p3=new JPanel();
		
		p1.add(toolbar);
		
		p2.add(colorchooser);
		p3.add(jMenuBar1);
		
		Container contentPane = getContentPane();
		contentPane.add(p1,BorderLayout.EAST);
		contentPane.add(p3,BorderLayout.NORTH);
		contentPane.add(panel,BorderLayout.CENTER);
		contentPane.add(p2,BorderLayout.WEST);
		model.addChangeListener(new MousePanel());
	}

 class MousePanel extends JPanel implements ActionListener,ChangeListener
   {
   
	 public MousePanel()
	 {
		/*squares = new ArrayList();
		lines=new ArrayList();
		ellipses=new ArrayList();
		points=new ArrayList();
		current = null;
		line=null;
		ellipse=null;
		point=null;*/


		addMouseListener(new MouseHandler());
		addMouseMotionListener(new MouseMotionHandler());
	 }
	 public void actionPerformed(ActionEvent e)
	 {	
	 
		if(e.getSource()== jMenuFileExit){
			System.exit(0);
		}
		
		if(e.getSource()==jMenuFileSave){
			JFrame frame =new Savefile();
			frame.dispose();
			frame.pack();
			frame.setVisible(true);
		}
	    if(e.getSource()==jMenuAbout){
	    	
	    	
	    	JFrame dlg = new AboutBox();
	 
	    	
	    	
	    	
		    
		    dlg.pack();
		    dlg.show();
	    	
	    	
	    	
	    	
	    	
	    	
	    	
	    	
	    	
	    	
	    	
	    	
	    }
	    	
	 
	 
		for(int i=0;i<4;i++)
		if(e.getSource()==button[i])
		m=i;
	 }
	public void stateChanged(ChangeEvent e)
	{
	 color =colorchooser.getColor();
	}
	 public void paintComponent(Graphics g)
	 {
		super.paintComponent(g);
		g.setColor(color);
		
		
			
		
		

		 if(m==3)
		{
	    g.fillRect(x1,y1,Math.abs(x1-x2),Math.abs(y1-y2));
	    g.setColor(color);}
		else if(m==2){
		g.fillOval(Math.min(x1,x2),Math.min(y1,y2),Math.abs(x1-x2),Math.abs(y1-y2));
		g.setColor(color);}
		else if(m==1){
		g.drawLine(Math.min(x1,x2),Math.min(y1,y2),Math.abs(x1-x2),Math.abs(y1-y2));
		g.setColor(color);}
		else{
		g.fillOval(x1,y1,3,3);
		g.setColor(color);}
	 }


	
    /* private ArrayList squares,lines,ellipses,points;
	 Line2D line;
	 Ellipse2D ellipse;
	 Rectangle2D current;
	 Point2D point;*/

	private class MouseHandler extends MouseAdapter
	{
		public void mousePressed(MouseEvent e)
		{
			x1=e.getX();
			y1=e.getY();	
		}
		public void mouseReleased(MouseEvent e)
		{
			x2=e.getX();
			y2=e.getY();
			repaint();
		}

	}

	private class MouseMotionHandler implements MouseMotionListener
	{	
	
	
	
	
	
	
	
	
	
	
		public void mouseMoved(MouseEvent event)
		{
			
		

		
			
	   	 }

		public void mouseDragged(MouseEvent e)
		{
			x2=e.getX();
			y2=e.getY();
			repaint();
		
            }
        }
   }
}
 class Savefile extends JFrame {
	public Savefile(){
		super("save Picture");
		final JTextArea ta=new JTextArea(5,20);
		ta.setMargin(new Insets(5,5,5,5));
		ta.setEditable(false);
		JScrollPane sp=new JScrollPane(ta);
		final JFileChooser fc=new JFileChooser();
		JButton openBtn=new JButton("打开文件");
		openBtn.addActionListener(new ActionListener(){
			public void actionPerformed (ActionEvent e){
				int returnVal=fc.showOpenDialog(Savefile.this);
				if(returnVal==JFileChooser.APPROVE_OPTION){
					File file=fc.getSelectedFile();
					ta.append("打开:"+file.getName()+".\n");
				}else ta.append("取消打开文件命令.\n");
			}
		});
		JButton saveBtn=new JButton("保存文件");
		saveBtn.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				int returnVal=fc.showSaveDialog(Savefile.this);
				if(returnVal==JFileChooser.APPROVE_OPTION){
					File file=fc.getSelectedFile();
					ta.append("Saving:"+file.getName()+".\n");
					
					
					
					
					
					
				}else ta.append("取消保存命令.\n");
			}
		});
		JPanel buttonPanel=new JPanel();
		buttonPanel.add(openBtn);
		buttonPanel.add(saveBtn);
		openBtn.setNextFocusableComponent(saveBtn);
		saveBtn.setNextFocusableComponent(openBtn);
		Container c=getContentPane();
		c.add(buttonPanel,BorderLayout.NORTH);
		c.add(sp,BorderLayout.CENTER);
		}
	}

 class AboutBox extends JFrame implements ActionListener {

  JPanel panel1 = new JPanel();
  JPanel panel2 = new JPanel();
  JPanel insetsPanel1 = new JPanel();
  JPanel insetsPanel2 = new JPanel();
  JPanel insetsPanel3 = new JPanel();
  JButton button1 = new JButton();
  JLabel imageLabel = new JLabel();
  JLabel label1 = new JLabel();
  JLabel label2 = new JLabel();
  JLabel label3 = new JLabel();
  JLabel label4 = new JLabel();
  ImageIcon image1 = new ImageIcon();
  BorderLayout borderLayout1 = new BorderLayout();
  BorderLayout borderLayout2 = new BorderLayout();
  FlowLayout flowLayout1 = new FlowLayout();
  GridLayout gridLayout1 = new GridLayout();
  String product = "绘图系统";
  String version = "1.0";
  String copyright = "Copyright (c) 2004";
  String comments = "Protected by Law";
  public AboutBox() {
  
    
   
    image1 = new ImageIcon("about.png");
    imageLabel.setIcon(image1);
    this.setTitle("About");
    panel1.setLayout(borderLayout1);
    panel2.setLayout(borderLayout2);
    insetsPanel1.setLayout(flowLayout1);
    insetsPanel2.setLayout(flowLayout1);
    insetsPanel2.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
    gridLayout1.setRows(4);
    gridLayout1.setColumns(1);
    label1.setText(product);
    label2.setText(version);
    label3.setText(copyright);
    label4.setText(comments);
    insetsPanel3.setLayout(gridLayout1);
    insetsPanel3.setBorder(BorderFactory.createEmptyBorder(10, 60, 10, 10));
    button1.setText("Ok");
    button1.addActionListener(this);
    insetsPanel2.add(imageLabel, null);
    panel2.add(insetsPanel2, BorderLayout.WEST);
    this.getContentPane().add(panel1, null);
    insetsPanel3.add(label1, null);
    insetsPanel3.add(label2, null);
    insetsPanel3.add(label3, null);
    insetsPanel3.add(label4, null);
    panel2.add(insetsPanel3, BorderLayout.CENTER);
    insetsPanel1.add(button1, null);
    panel1.add(insetsPanel1, BorderLayout.SOUTH);
    panel1.add(panel2, BorderLayout.NORTH);
    setResizable(true);
  }
  //Overridden so we can exit when window is closed
 
 
 
 	public void actionPerformed(ActionEvent e){
 		if(e.getSource()==button1)
 		dispose();
 	}
}				
				

⌨️ 快捷键说明

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