我是 Java 新手(知道 OOPS 概念,因为我是 ASP.NET 成员,但在过去 2 年没有使用 Java),正在创建井字游戏。
Deleted code here as I am putting my code below.
在这里,我想知道下面的行是如何工作的?
game frame = new game();
frame.setVisible(true);
我知道框架是游戏类的对象并由 new game() 构造函数初始化,但不了解 .setVisible() 方法如何适用于该对象。
我面临的另一个困难是如何访问其他类或方法中的初始化对象。
您好,我问了上一个问题,因为我在这里遇到了这个困难:首先我会给出代码
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 Class 之外创建类,如何访问 Game() 中的变量?