Java Eclipse:插入“}”以完成块

Java Eclipse:插入“}”以完成块,java,eclipse,Java,Eclipse,我有以下代码来绘制一个矩形,效果很好: public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(10)); g2.setPaint(new Color(128, 0, 0)); Rectangle2D.Double s =

我有以下代码来绘制一个矩形,效果很好:

public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setStroke(new BasicStroke(10));
        g2.setPaint(new Color(128, 0, 0));
        Rectangle2D.Double s = new Rectangle2D.Double(20.0, 20.0, 100.0, 50.0);
        g2.draw(s);
    }
在我用这个代码替换它之后

public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setStroke(new BasicStroke(10));
        g2.setPaint(new Color(128, 0, 0));
        Shape[] shapeList = new Shape[3];    
        shapeList[0] = new Rectangle2D.Double(20.0,20.0,40.0,70.0);  
        shapeList[1] = new Ellipse2D.Double(20.0,20.0,40.0,70.0);  
        int[] x = { 10, 50, 70 };  
        int[] y = { 20, 70, 20 };  
        shapeList[2] = new Polygon(x,y,3);  
         // now update the display 
        for (int i=0; i<4; i++){
            g2.draw(shapeList[i]);
            }
          
    }
我还不知道为什么,但我想我在什么地方遗漏了什么

这是我的全部代码:

import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;

import javax.swing.*;

public class FrameDrawings extends JPanel {
    public FrameDrawings() {
        setBackground(Color.white);
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setStroke(new BasicStroke(10));
        g2.setPaint(new Color(128, 0, 0));
        Rectangle2D.Double s = new Rectangle2D.Double(20.0, 20.0, 100.0, 50.0);
            Shape[] shapeList = new Shape[3];    
            shapeList[0] = new Rectangle2D.Double(20.0,20.0,40.0,70.0);  
            shapeList[1] = new Ellipse2D.Double(20.0,20.0,40.0,70.0);  
            int[] x = { 10, 50, 70 };  
            int[] y = { 20, 70, 20 };  
            shapeList[2] = new Polygon(x,y,3);  
             // now update the display 
            for (int i=0; i<4; i++){
                g2.draw(shapeList[i]);
                }
              

    }
}

代码是正确的,您确定已正确保存/重建吗?代码没有问题。我只是把它放在eclipse中,它只返回警告。没有错误。我知道,我逐行验证了5分钟。我不知道为什么它会抱怨这可能是一个与Eclipse相关的bug。不要使用Eclipse。这可能是因为您有一个不可靠的JDK或其他东西。你能创建一个新项目并打印hello world吗?如果有效,那么慢慢地从这个应用程序中添加代码,看看它是否/何时中断。
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;

import javax.swing.*;

public class FrameDrawings extends JPanel {
    public FrameDrawings() {
        setBackground(Color.white);
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setStroke(new BasicStroke(10));
        g2.setPaint(new Color(128, 0, 0));
        Rectangle2D.Double s = new Rectangle2D.Double(20.0, 20.0, 100.0, 50.0);
            Shape[] shapeList = new Shape[3];    
            shapeList[0] = new Rectangle2D.Double(20.0,20.0,40.0,70.0);  
            shapeList[1] = new Ellipse2D.Double(20.0,20.0,40.0,70.0);  
            int[] x = { 10, 50, 70 };  
            int[] y = { 20, 70, 20 };  
            shapeList[2] = new Polygon(x,y,3);  
             // now update the display 
            for (int i=0; i<4; i++){
                g2.draw(shapeList[i]);
                }
              

    }
}