?? mainlei.java
字號:
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{
public 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,"先鋒小組制作");
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 + -