0
我被困在這個錯誤'名稱在組件中具有私有訪問'。我不明白它是什麼意思,但我想我可能在主要方法中錯誤地初始化了變量'name'。 startGame()方法內的錯誤點,我初始化'label1'。獲取錯誤:組件中的變量私有訪問
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Gamey extends JFrame
{
private JPanel panelUp;
private JPanel panelDown;
private JButton btnPlay, btnNext;
private JLabel label1;
public Gamey()
{
super("Game");
startGame();
}
public void startGame()
{
Container c = getContentPane();
panelUp = new JPanel();
panelDown = new JPanel();
label1 = new JLabel(name + "Snow glows white on the mountain tonight"); //name has a private access in Component
btnPlay = new JButton("Play");
btnNext = new JButton("Next");
btnPlay.addActionListener(new Handler());
panelUp.add(label1);
panelDown.add(btnPlay);
c.add(panelUp, BorderLayout.CENTER);
c.add(panelDown, BorderLayout.PAGE_END);
}
public class Handler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == btnPlay)
{
btnPlay.setText("Next");
label1.setText("Not a footprint to be seen");
}
}
}
public static void main(String[] args)
{
String name = JOptionPane.showInputDialog(null, "enter name: ");
Gamey game = new Gamey();
game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
game.setSize(450,450);
game.setVisible(true);
game.setLocationRelativeTo(null);
}
}
好吧我已經按照你的建議。謝謝!但這是另一個。它編譯但name變量顯示爲null,如下所示:nullSnow今晚在山上發出白光。它爲什麼這樣做? – Smee