私は Java を初めて使用し (ASP.NET メンバーとして OOPS の概念を知っていますが、過去 2 年間は Java を使用していません)、Tic-Tac-Toe ゲームを作成しています。
Deleted code here as I am putting my code below.
ここで、以下の行がどのように機能しているのか疑問に思っています。
game frame = new game();
frame.setVisible(true);
フレームがゲームクラスのオブジェクトであり、 new game() コンストラクターによって初期化されることは理解しましたが、このオブジェクトに対して .setVisible() メソッドがどのように機能するかを理解していません。
私が直面しているもう 1 つの問題は、他のクラスまたはメソッドで初期化されたオブジェクトにアクセスする方法です。
こんにちは、私はここでこの問題に直面しているので、前の質問をしました: 最初にコードを示します
public class Game extends JFrame {
private JPanel contentPane;
//private JPanel settingPane;
protected JLabel lblPlayerName2; // I am using this one for my testing
JLabel[] lbls = new JLabel[9];
private final ButtonGroup buttonGroup = new ButtonGroup();
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Game frame = new Game();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Game() {
setTitle("Tic Tac Toe");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 810, 607);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.setName("Tic Tac Toe");
.
.
..
.
.
.
.
.
.
.
.
.
for (int i=0; i<lbls.length; i++) {
lbls[i] = new JLabel(""+(i+1));
lbls[i].addMouseListener(new AllbtnBehvr());
lbls[i].setFont(new Font("Trebuchet MS", Font.BOLD, 95));
lbls[i].setHorizontalAlignment(SwingConstants.CENTER);
lbls[i].setBorder(new LineBorder(new Color(0, 0, 0), 2));
panelGameArea.add(lbls[i]);
}
.
.
.
.
.
.
.
.
.
.
.
.
} // End of Game()
class AllbtnBehvr implements MouseInputListener{ //Created this class as SubClass of Game Class
@Override
public void mouseClicked(MouseEvent src) {
// TODO Auto-generated method stub
JLabel b = (JLabel) src.getSource();
lblPlayerName2.setText(b.getText());
. }
...
.
.
.
.
.
.
} // End of AllbtnBehvr
}// End of Game Class
ここで、変数 'lblPlayerName2' と lbls[] が Game() コンストラクターの外側で定義されており、アクセスできることを観察しましたが、Game() 内の他の変数にはアクセスできません。ここで、お聞きしたいのですが、
Game() 内の変数にアクセスするにはどうすればよいですか? また、Game クラスの外部にクラスを作成した場合、Game() 内の変数にアクセスするにはどうすればよいですか?