【问题标题】:No idea where compiler errors are forming when using JLayeredPane不知道使用 JLayeredPane 时编译器错误在哪里形成
【发布时间】:2011-09-26 02:34:53
【问题描述】:

所以,在我的最后一个问题(“无法弄清楚如何在 java 中重叠图像”)中,有人建议我使用布局管理器和 JLayeredPane。然而,在研究了演示并编写了自己的代码之后,我发现了多达 34 个编译器错误。编译器错误始终是“”,因此导入可能有问题。但是,我完全从 LayeredPane Demo 中复制了导入列表。再一次,我被难住了。也再次,我提前感谢任何人的建议!

import javax.swing.*;
import javax.swing.border.*;
import javax.accessibility.*;

import java.awt.*;
import java.awt.event.*;


public class SlotAnimatorTest extends JPanel
{
  JPanel pane = new JPanel ();
  pane.setPreferredSize(new Dimension(1500, 1500));
  JPanel slotAnim;

  private JPanel showSlotAnimators ()
  {
    slotAnim = new JPanel ();

    SlotAnimator a0 = new SlotAnimator (45);
    SlotAnimator a1 = new SlotAnimator (90);
    SlotAnimator a2 = new SlotAnimator (180);

    slotAnim.setLayout (new GridLayout (3,0,20,30));
    slotAnim.add (a0);
    slotAnim.add (a1);
    slotAnim.add (a2);

    return slotAnim;
  }

  ImageIcon background = new ImageIcon ("/Users/haleywight/Documents/slotmachine.png");
  JLabel bG = new JLabel (background);
  bGsetBounds(1500, 760, background.getIconWidth(), background.getIconHeight());
  pane.add (bG, newInteger(0),0);

  pane.add (showSlotAnimators (), newInteger (1));

      private static void createAndShowGUI() 
      {

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JComponent newContentPane = new SlotAnimatorTest();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
     }

  public static void main (String [] args)
    {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }

}

【问题讨论】:

    标签: java swing jlayeredpane


    【解决方案1】:

    这与 JLayeredPane 无关,与基本 Java 有很大关系。您不能在类中和方法或构造函数或静态/非静态初始化程序块之外调用方法。

    【讨论】:

      【解决方案2】:

      以下语句必须放在方法中。

      bGsetBounds(1500, 760, background.getIconWidth(), background.getIconHeight());
      pane.add (bG, newInteger(0),0);
      pane.add (showSlotAnimators (), newInteger (1));
      

      【讨论】:

      • 实际上有更多错位的方法调用,但是 1+ 因为你得到了大部分。 :)
      • @HovercraftFullOfEels 那是真的 :) 我看到你的帖子涵盖了所有内容。
      • 敬畏,至少可以说这是一个愚蠢的错误。我通过在构造函数中创建语句来修复它。修正代码 ` public SlotAnimatorTest () { pane.setPreferredSize(new Dimension(1500, 1500)); pane.add (b, new Integer(0)); pane.add(showSlotAnimators(), new Integer(1)); } public static void main (String [] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { SlotAnimatorTest t = new SlotAnimatorTest (); t.createAndShowGUI(); } }); } `
      • 但是,现在它编译(非常感谢您的帮助)所有出现的只是一个灰色的小屏幕
      • @hmw:实际上最好创建并发布sscce。请点击链接阅读更多关于这种非常有用的动物的信息。
      猜你喜欢
      • 1970-01-01
      • 2018-05-16
      • 2015-12-02
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多