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

📄 画图.txt

📁 java编的画图工具
💻 TXT
📖 第 1 页 / 共 2 页
字号:
import java.awt.event.*;
import javax.swing.JOptionPane;
import java.awt.geom.*;
import java.io.*;
import java.applet.*;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.FileDialog;

class Point implements Serializable
{
 int x,y;
 Color col;
 int tool;
 int guangdu;

 Point(int x, int y, Color col, int guangdu){
  this.x = x; 
  this.y = y;
  this.col = col;
  this.guangdu = guangdu;
  }
  public void move(int x,int y,Color col,int guangdu){
  	this.x=x;
  	this.y=y;
  	this.col=col;
  	this.guangdu=guangdu;
  }
}


public class Mainlei{
	static huatuqu huatu=new huatuqu();
	public static void main(String[] args){
		
		caidanlei frame=new caidanlei();
		frame.getContentPane().setLayout(new BorderLayout());
		frame.getContentPane().add(huatu,BorderLayout.CENTER);
		
		frame.setSize(700,600);
		frame.setTitle("huatuban");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
 static JButton yanseRed,yanseBlack,yanseBule,yanseDarkGray,yanseGray,yansePink,
	yanseGreen,yanseLightGray,yanseMagenta,yanseOrange,yanseYellow,yanseCyan;
	static Color cc;
	static String text1String;
   static int text1Int=-1;
   static String text2String;
   static int text2Int=-1;
    
    static String text3String;
   static int text3Int=-1;
  static  String text4String;
  static  int text4Int=-1;
    
   static String text5String;
   static int text5Int=-1;
   static String text6String;
   static int text6Int=-1;
   
   static String text7String;
   static int text7Int=-1;
   static String text8String;
   static int text8Int=-1;
   
   static JButton jbo1;
   static JButton jbo2;
   static JButton jbo3;
   static JButton jbo4;
  static JTextField text1;
  static JTextField text2;
  static JTextField text3;
  static JTextField text4;
  static JTextField text5;
  static JTextField text6;
  static JTextField text7;
  static JTextField text8;
	//菜单项
	static class caidanlei extends JFrame implements ActionListener{
    private JMenuItem jmxinjian, jmbaocun, jmbianji, jmdakai, jmiClose,jmbangzhu,
    jmpaowuxian,jmzhixian,jmshuangqu,jmtuoyuan;
    huatuqu hutu=new huatuqu();
    FileDialog openPicture,savePicture;
    Vector paintInfo = null;//点信息向量组
    int n = 1;
    JFrame frame1;
    JFrame frame2;
    JFrame frame3;
    JFrame frame4;
    FileInputStream picIn = null;
    FileOutputStream picOut = null;
 
    ObjectInputStream VIn = null;
    ObjectOutputStream VOut = null;
    

    public caidanlei(){
		JMenuBar jm=new JMenuBar();
		setJMenuBar(jm);
		JMenu fileJmenu=new JMenu("文件",false);
		JMenu yeseJmenu=new JMenu("颜色",true);
		JMenu shengchengMenu=new JMenu("生成");
		JMenu bangzhumenu=new JMenu("帮助",false);
		jm.add(fileJmenu);
		jm.add(yeseJmenu);
		jm.add(shengchengMenu);
		jm.add(bangzhumenu);
		fileJmenu.add(jmxinjian=new JMenuItem("新建"));
		fileJmenu.add(jmdakai=new JMenuItem("打开"));
		fileJmenu.add(jmbaocun=new JMenuItem("保存"));
		fileJmenu.addSeparator();
		fileJmenu.add(jmiClose=new JMenuItem("退出"));
		fileJmenu.addSeparator();
		yeseJmenu.add(jmbianji=new JMenuItem("编辑颜色"));
		shengchengMenu.add(jmpaowuxian=new JMenuItem("画抛物线"));
		shengchengMenu.add(jmzhixian=new JMenuItem("画直线"));
		shengchengMenu.add(jmshuangqu=new JMenuItem("画双曲线"));
		shengchengMenu.add(jmtuoyuan=new JMenuItem("画椭圆"));
		bangzhumenu.add(jmbangzhu=new JMenuItem("帮助主题"));
		jmxinjian.addActionListener(this);
		jmbaocun.addActionListener(this);
		jmdakai.addActionListener(this);
		jmiClose.addActionListener(this);
		jmbianji.addActionListener(this);
		jmpaowuxian.addActionListener(this);
		jmzhixian.addActionListener(this);
		jmshuangqu.addActionListener(this);
		jmbangzhu.addActionListener(this);
		jmtuoyuan.addActionListener(this);
		
  openPicture = new FileDialog(this,"打开图画",FileDialog.LOAD);
  openPicture.setVisible(false);
  savePicture = new FileDialog(this,"保存图画",FileDialog.SAVE);
  savePicture.setVisible(false);

  openPicture.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   { openPicture.setVisible(false); }
  });

  savePicture.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   { savePicture.setVisible(false); }
  });

  addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   { System.exit(0);}
  });
	
	}
	public void actionPerformed(ActionEvent e) {
		String actionCommand = e.getActionCommand();
      if (e.getSource() instanceof JMenuItem) {
      
      if ("新建".equals(actionCommand)){
         huatu.setForeground(Color.white);
         JOptionPane.showMessageDialog(null,"是否保存此界面");
         }
    
      else if ("打开".equals(actionCommand)){
       openPicture.setVisible(true);   
       if(openPicture.getFile()!=null){ 
         
      try{ 
      paintInfo.removeAllElements();
      File filein = new File(openPicture.getDirectory(),openPicture.getFile());
      picIn = new FileInputStream(filein);
      VIn = new ObjectInputStream(picIn);
      paintInfo = (Vector)VIn.readObject();
      VIn.close();
      repaint();
      
     }
    catch(ClassNotFoundException IOe2)
    {
     repaint();
     
     System.out.println("can not read object");
    }
    catch(IOException IOe) 
    {
     repaint();
     
     System.out.println("can not read file");
    }
   }
   }
  else if ("保存".equals(actionCommand)){
      savePicture.setVisible(true);
      try{
      File fileout = new File(savePicture.getDirectory(),savePicture.getFile());
      picOut = new FileOutputStream(fileout);
      VOut = new ObjectOutputStream(picOut);
      VOut.writeObject(paintInfo);
      VOut.close();
     }
    catch(IOException IOe) 
    {
      System.out.println("can not write object");
    }

   
  }
 

      else if ("编辑颜色".equals(actionCommand))
      cc = JColorChooser.showDialog(caidanlei.this, "please a color",cc); 
      else if("帮助主题".equals(actionCommand))
      JOptionPane.showMessageDialog(null,"christy");
      else if("画抛物线".equals(actionCommand)){
      	jbo1=new JButton("确定");
      	JPanel panel=new JPanel();
      	JLabel jlbl1=new JLabel("画抛物线  如:y=ax^2+b");
      	panel.add(jlbl1);
      	JPanel pane2=new JPanel();
      	pane2.setLayout(new GridLayout(2,2));
      	JLabel jlbl2=new JLabel("a=");
      	text1=new JTextField();
      	JLabel jlbl3=new JLabel("b=");
         text2=new JTextField();
      	pane2.add(jlbl2);
      	pane2.add(text1);
      	pane2.add(jlbl3);
      	pane2.add(text2);
   
        frame1=new JFrame();
      	frame1.setTitle("画抛物线");
      	frame1.getContentPane().setLayout(new BorderLayout());
      	frame1.getContentPane().add(panel,BorderLayout.NORTH);
      	frame1.getContentPane().add(pane2,BorderLayout.CENTER);
      	frame1.getContentPane().add(jbo1,BorderLayout.SOUTH);
      	frame1.setSize(250,175);
      	frame1.setVisible(true);
      	jbo1.addActionListener(new ActionListener(){
      	public void actionPerformed(ActionEvent e){
    	  text1String=text1.getText();
          text2String=text2.getText();
          text1Int=Integer.parseInt(text1String);
          text2Int=Integer.parseInt(text2String);
          frame1.setVisible(false);
    	   }
    });
	 
      }
      else if("画直线".equals(actionCommand)){
      	JPanel panel=new JPanel();
      	jbo2=new JButton("确定");
      	JLabel jlbl1=new JLabel("画直线  如:y=ax+b");
      	panel.add(jlbl1);
      	JPanel pane2=new JPanel();
      	pane2.setLayout(new GridLayout(2,2));
      	JLabel jlbl2=new JLabel("a=");
      	 text3=new JTextField();
      	JLabel jlbl3=new JLabel("b=");
       text4=new JTextField();
      	pane2.add(jlbl2);
      	pane2.add(text3);
      	pane2.add(jlbl3);
      	pane2.add(text4);
   
      frame2=new JFrame();
      	frame2.setTitle("画直线");
      	frame2.getContentPane().setLayout(new BorderLayout());
      	frame2.getContentPane().add(panel,BorderLayout.NORTH);
      	frame2.getContentPane().add(pane2,BorderLayout.CENTER);
      	frame2.getContentPane().add(jbo2,BorderLayout.SOUTH);
      	frame2.setSize(250,175);
      	frame2.setVisible(true);
      	jbo2.addActionListener(new ActionListener(){
      	public void actionPerformed(ActionEvent e){
    	   text3String=text3.getText();
           text4String=text4.getText();
           text3Int=Integer.parseInt(text3String);
            text4Int=Integer.parseInt(text4String);
            frame2.setVisible(false);
    	   }
    });
        
      }
      if("画双曲线".equals(actionCommand)){
      	jbo3=new JButton("确定");
      	JPanel panel=new JPanel();
      	JLabel jlbl1=new JLabel("画双曲线 如:x^2/a^2-x^2/b^2=1");
      	panel.add(jlbl1);
      	JPanel pane2=new JPanel();
      	pane2.setLayout(new GridLayout(2,2));
      	JLabel jlbl2=new JLabel("a=");
      	 text5=new JTextField();
      	JLabel jlbl3=new JLabel("b=");
       text6=new JTextField();
      	pane2.add(jlbl2);
      	pane2.add(text5);
      	pane2.add(jlbl3);
      	pane2.add(text6);
   
      	 frame3=new JFrame();
      	frame3.setTitle("画双曲线");
      	frame3.getContentPane().setLayout(new BorderLayout());
      	frame3.getContentPane().add(panel,BorderLayout.NORTH);
      	frame3.getContentPane().add(pane2,BorderLayout.CENTER);
      	frame3.getContentPane().add(jbo3,BorderLayout.SOUTH);
      	frame3.setSize(250,175);
      	frame3.setVisible(true);
      		jbo3.addActionListener(new ActionListener(){
      	public void actionPerformed(ActionEvent e){
    	 text5String=text5.getText();
        text6String=text6.getText();
        text5Int=Integer.parseInt(text5String);
        text6Int=Integer.parseInt(text6String);
        frame3.setVisible(false);
    	   }
    });
    
        
      }
     
   if("画椭圆".equals(actionCommand)){
      	jbo4=new JButton("确定");
      	JPanel panel=new JPanel();
      	JLabel jlbl1=new JLabel("画椭圆 如 :x^2/a^+y^2/b^=1");
      	panel.add(jlbl1);
      	JPanel pane2=new JPanel();
      	pane2.setLayout(new GridLayout(2,2));
      	JLabel jlbl2=new JLabel("a=");
      	 text7=new JTextField();
      	JLabel jlbl3=new JLabel("b=");
       text8=new JTextField();
      	pane2.add(jlbl2);
      	pane2.add(text7);
      	pane2.add(jlbl3);
      	pane2.add(text8);
   
      	 frame4=new JFrame();
      	frame4.setTitle("画椭圆");
      	frame4.getContentPane().setLayout(new BorderLayout());
      	frame4.getContentPane().add(panel,BorderLayout.NORTH);
      	frame4.getContentPane().add(pane2,BorderLayout.CENTER);
      	frame4.getContentPane().add(jbo4,BorderLayout.SOUTH);
      	frame4.setSize(250,175);
      	frame4.setVisible(true);
      	jbo4.addActionListener(new ActionListener(){
      	public void actionPerformed(ActionEvent e){
    	 text7String=text7.getText();
        text8String=text8.getText();
        text7Int=Integer.parseInt(text7String);
        text8Int=Integer.parseInt(text8String);
        frame4.setVisible(false);
    	   }
    });
    
        
      }
      else if ("退出".equals(actionCommand))
      System.exit(0);
}
	}
}
//画图类
static class huatuqu extends  JPanel  implements ItemListener{
   boolean dianFirst=true;
   String name3;
   String name1;
   String name2;
   Choice jcb1;
   Choice jcb2;
   Choice jcb3;
   boolean xiangpiFirst=true;
   boolean qianbiFirst=true;
   boolean juxingFirst=true;
   boolean tuoyuanFirst=true;
   boolean yuanjiaoFirst=true;
   String msr;
   String theButton;
   boolean isFirst=true;
   private Graphics g;
   private Point lineStart=new Point(0,0,Color.red,50);
   ImageIcon jbtxiangpi = 
    new ImageIcon("ico/x.gif");
   ImageIcon jbtqianbi = 
    new ImageIcon("ico/q.gif");
   ImageIcon jbPrint = 
    new ImageIcon("ico/s.gif");
    ImageIcon jbxiguan = 
    new ImageIcon("ico/di.jpg");
     ImageIcon jbziti = 
    new ImageIcon("ico/zt.gif");
     ImageIcon jbzhixian= 
    new ImageIcon("ico/z.gif");
    ImageIcon jbtuoyuan = 
    new ImageIcon("ico/t.gif");
     ImageIcon jbjuxing = 
    new ImageIcon("ico/ju.gif");
     ImageIcon jbduopianxing = 
    new ImageIcon("ico/d.gif");
    ImageIcon jbyuanjiaojuxing =
    new ImageIcon("ico/yu.gif");
    ImageIcon redicon =
    new ImageIcon("ico/red.jpg");
    ImageIcon blackicon =
    new ImageIcon("ico/black.jpg");
    ImageIcon buleicon =
    new ImageIcon("ico/bule.jpg");
    ImageIcon cyanicon =
    new ImageIcon("ico/cyae.jpg");
    ImageIcon drakgrayicon =
    new ImageIcon("ico/drakgray.jpg");
    ImageIcon grayicon =
    new ImageIcon("ico/gray.jpg");
    ImageIcon greenicon =
    new ImageIcon("ico/green.jpg");
    ImageIcon lightgrayicon =
    new ImageIcon("ico/lightgray.jpg");
    ImageIcon magentaicon =
    new ImageIcon("ico/megenta.jpg");
    ImageIcon orangeicon =
    new ImageIcon("ico/orga.jpg");
    ImageIcon pinkicon =
    new ImageIcon("ico/pink.jpg");
    ImageIcon yellowicon =
    new ImageIcon("ico/yellow.jpg");
	public huatuqu()
	{
	  
	  this.setLayout(new BorderLayout());
	  this.setBackground(Color.white);
	  
    Action xiangpiAction = new MyAction("xiangpi", jbtxiangpi,
      "橡皮",

⌨️ 快捷键说明

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