eclipse中的swing无法访问类sun.java2d.loops

时间:2018-05-09 22:16:06

标签: java eclipse swing intellij-idea

我使用IntelliJ一切正常,但当我将项目发送给我的朋友(他使用Eclipse)时,他无法运行它 Secreenshoot of the error

这是Class JPanelImage 我认为(drawComponent)的重新定义是问题

  protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    try {
        BufferedImage bImage = ImageIO.read(new File( image));
        BufferedImage jImage ;
        g.drawImage(bImage, 2, 2, (int) getSize().getWidth(), (int) getSize().getHeight(), this);
       for(int k=0;k<joueurs.size();k++) {
            jImage= ImageIO.read(new File(Graphiques.Pions[joueurs.get(k).getId()]));
            System.out.println("Affichage des joueurs X:"+32*(int)(k%2) +" Y:"+ (getSize().getHeight()/2-40*(k/2)));
            g.drawImage(jImage,32*(k%2), (int) getSize().getHeight()/2-40*(int)(k/2),28,40, this);

        }
        if(artefact!=null){
            jImage= ImageIO.read(new File("./res/images/tresors/"+artefact.getElementArtefact()+".png"));
            g.drawImage(jImage,60, 8,28,40, this);
        }

        if(zone!=null){

           switch (zone.getTypeSelection()){
               case 0:
                   setBorder(Graphiques.INACTIVE_BORDER);
                break;
               case 1:
                   setBorder(Graphiques.ACTIVE_BORDER_SELECTED);
                   break;
               case 2:
                   setBorder(Graphiques.ACTIVE_BORDER_SHORE_HOVER);
                   break;
           }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:1)

Java 9和Java 10中,默认情况下无法访问sun.*个包(没有公共API:使用时风险自负)。

要使其可访问,您必须在Eclipse中执行以下操作:

  1. 在菜单中选择 项目&gt;属性
  2. Java构建路径 中,在选项卡 中选择 模块路径&gt ; JRE系统库[JavaSE-9]&gt;是模块化 节点,然后点击 编辑...
  3. 详细信息 标签中,在 已添加导出 部分中,点击 添加。 ..
  4. 输入以下内容:
    • 来源模块: java.desktop
    • 套餐: sun.java2d.loops
  5. enter image description here