import javax.swing.;
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("绘图");
JMenultem m_line = new JMenultem("直线");
m.line.addActionListener(new MenultemHandler());
JMenuItem m_circle = new JMenultem("圆");
JMenultem m_Rectangle = new JMenultem("矩形");
JMenultem m_oval = new JMenultem("椭圆");
draw.add(m_line);
draw.add(m_circle);
draw.add(m_Rectangle);
draw.add(m_oval);
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;
}
}
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;
}
}
public void setType(int shapeType){
this.shapeType = shapeType;
}
}
TestDraw.java:15: 错误: 找不到符号
JMenultem m_line = new JMenultem("直线");
^
符号: 类 JMenultem
位置: 类 TestDraw
TestDraw.java:15: 错误: 找不到符号
JMenultem m_line = new JMenultem("直线");
^
符号: 类 JMenultem
位置: 类 TestDraw
TestDraw.java:17: 错误: 找不到符号
JMenuItem m_circle = new JMenultem("圆");
^
符号: 类 JMenultem
位置: 类 TestDraw
TestDraw.java:18: 错误: 找不到符号
JMenultem m_Rectangle = new JMenultem("矩形");
^
符号: 类 JMenultem
位置: 类 TestDraw
TestDraw.java:18: 错误: 找不到符号
JMenultem m_Rectangle = new JMenultem("矩形");
^
符号: 类 JMenultem
位置: 类 TestDraw
TestDraw.java:19: 错误: 找不到符号
JMenultem m_oval = new JMenultem("椭圆");
^
符号: 类 JMenultem
位置: 类 TestDraw
TestDraw.java:19: 错误: 找不到符号
JMenultem m_oval = new JMenultem("椭圆");
^
符号: 类 JMenultem
位置: 类 TestDraw
TestDraw.java:49: 错误: 内部类TestDraw.MenultemHandler中的静态声明非法
public static void main(String[] args){
^
修饰符 'static' 仅允许在常量变量声明中使用
9 个错误
你是 JMenuItem 的 I 写成小写的 l 了吗
我把报错都改了,你试一下
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("圆");
JMenuItem m_Rectangle = new JMenuItem("矩形");
JMenuItem m_oval = new JMenuItem("椭圆");
draw.add(m_line);
draw.add(m_circle);
draw.add(m_Rectangle);
draw.add(m_oval);
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;
}
}
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;
}
}
public void setType(int shapeType) {
this.shapeType = shapeType;
}
}
给你改好了
package com.demo;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestDraw extends JFrame {
MyCanvas myc = null;
public TestDraw() {
initFrame();
}
public static void main(String[] args){
new TestDraw();
}
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("圆");
JMenuItem m_Rectangle = new JMenuItem("矩形");
JMenuItem m_oval = new JMenuItem("椭圆");
draw.add(m_line);
draw.add(m_circle);
draw.add(m_Rectangle);
draw.add(m_oval);
jbar.add(draw);
setJMenuBar(jbar);
myc = new MyCanvas();
add(myc);
setVisible(true);
}
class MenultemHandler implements ActionListener {
@Override
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;
}
}
}
class MyCanvas extends Canvas {
int shapeType = -1;
@Override
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;
}
}
public void setType(int shapeType) {
this.shapeType = shapeType;
}
}
}
TestDraw.java:56: 错误: 内部类TestDraw.MenultemHandler中的静态声明非法
public static void main(String[] args) {
^
修饰符 'static' 仅允许在常量变量声明中使用
1 个错误
还是有这个报错