Не знаю, где возникают ошибки компилятора при использовании JLayeredPane

Итак, в моем последнем вопросе («Не могу понять, как перекрывать изображения в java») мне любезно посоветовали использовать менеджеры компоновки и JLayeredPane. Однако после изучения демонстраций и формирования собственного кода у меня появилось целых 34 ошибки компилятора. Ошибки компилятора постоянно "", поэтому, вероятно, что-то не так с импортом. Однако я скопировал список импорта точно из демонстрации LayeredPane. В очередной раз я в тупике. А также еще раз, заранее благодарю всех за советы!

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();
            }
        });
    }

}

person hmw    schedule 26.09.2011    source источник


Ответы (2)


Это не имеет ничего общего с JLayeredPane и имеет много общего с базовой Java. Вы не можете вызывать метод в классе и вне метода или конструктора или статических/нестатических блоков инициализатора.

person Hovercraft Full Of Eels    schedule 26.09.2011

Следующие операторы должны быть размещены внутри метода.

bGsetBounds(1500, 760, background.getIconWidth(), background.getIconHeight());
pane.add (bG, newInteger(0),0);
pane.add (showSlotAnimators (), newInteger (1));
person kv-prajapati    schedule 26.09.2011
comment
Неуместных вызовов методов больше, чем на самом деле, но 1+, потому что вы получили большинство из них. :) - person Hovercraft Full Of Eels; 26.09.2011
comment
@HovercraftFullOfEels Это правда :), и я видел ваш пост, который охватывает все. - person kv-prajapati; 26.09.2011
comment
О боже, это была глупая ошибка, если не сказать больше. Я исправил это, создав поместив операторы в конструктор. Фиксированный код `public SlotAnimatorTest() {pane.setPreferredSize(new Dimension(1500, 1500)); pane.add(b, новое целое число(0)); pane.add(showSlotAnimators(), новый Integer(1)); } public static void main (String [] args) { javax.swing.SwingUtilities.invokeLater (new Runnable() { public void run() { SlotAnimatorTest t = new SlotAnimatorTest (); t.createAndShowGUI(); } }); } ` - person hmw; 26.09.2011
comment
Однако теперь он компилируется (во многом благодаря вашей помощи) все, что появляется, это небольшой серый экран. - person hmw; 26.09.2011
comment
@hmw: мы не можем читать код, размещенный в комментариях, потому что он не отформатирован. Если у вас все еще есть вопрос, опубликуйте его как редактирование исходного сообщения. - person Hovercraft Full Of Eels; 26.09.2011
comment
@hmw: на самом деле лучше всего создать и опубликовать sscce. Пожалуйста, нажмите на ссылку, чтобы узнать больше об этом очень полезном животном. - person Hovercraft Full Of Eels; 26.09.2011
comment
@Hovercrafy Full Of Eels, большое спасибо за вашу помощь! Я очень ценю это! - person hmw; 26.09.2011