import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class TestDraw extends JFrame {
MyCanvas myc = null;
public TestDraw() {
initFrame();
}
public void initFrame() {
setSize(800, 600);
JMenuBar jbar = new JMenuBar();
JMenu draw = new JMenu("绘图");
JMenuItem m_line = new JMenuItem("直线");
m_line.addActionListener(new MenultemHandler());
JMenuItem m_circle = new JMenuItem("圆");
m_circle.addActionListener(new MenultemHandler());
JMenuItem m_Rectangle = new JMenuItem("矩形");
m_Rectangle.addActionListener(new MenultemHandler());
JMenuItem m_oval = new JMenuItem("椭圆");
m_oval.addActionListener(new MenultemHandler());
JMenuItem m_point = new JMenuItem("点");
m_point .addActionListener(new MenultemHandler());
draw.add(m_line);
draw.add(m_circle);
draw.add(m_Rectangle);
draw.add(m_oval);
draw.add(m_point);
jbar.add(draw);
setJMenuBar(jbar);
myc = new MyCanvas();
add(myc);
setVisible(true);
}
class MenultemHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
switch (e.getActionCommand()) {
case "直线":
myc.setType(0);
myc.repaint();
break;
case "圆":
myc.setType(1);
myc.repaint();
break;
case "矩形":
myc.setType(2);
myc.repaint();
break;
case "椭圆":
myc.setType(3);
myc.repaint();
break;
case"点":
myc.setType(4);
myc.repaint();
}
}
}
public static void main(String[] args) {
new TestDraw();
}
}
class MyCanvas extends Canvas {
int shapeType = -1;
public void paint(Graphics g) {
switch (shapeType) {
case 0:
g.drawLine(50, 50, 400, 200);
break;
case 1:
g.drawOval(50, 50, 200, 200);
break;
case 2:
g.drawRect(50, 50, 200, 200);
break;
case 3:
g.drawOval(50, 50, 400, 200);
break;
case 4:
g.fillOval(50, 50, 2, 2);
}
}
public void setType(int shapeType) {
this.shapeType = shapeType;
}
}
这是已有代码 想要加如录入和读取功能,还有可以选择颜色变换还有复合图形功能。
录入读取什么。