Не знаю, где возникают ошибки компилятора при использовании 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();
}
});
}
}
2 ответа
Решение
Это не имеет ничего общего с JLayeredPane и во многом связано с базовой Java. Вы не можете вызвать метод в классе и вне метода или конструктора или статических / нестатических блоков инициализатора.
Следующие утверждения должны быть размещены внутри метода.
bGsetBounds(1500, 760, background.getIconWidth(), background.getIconHeight());
pane.add (bG, newInteger(0),0);
pane.add (showSlotAnimators (), newInteger (1));