【发布时间】:2014-04-29 04:25:04
【问题描述】:
我真的是swing lib的新手,大概5天前我开始使用它...所以我有很多问题...首先,我在JFrame上制作了一个井字游戏,离开会很酷就像那样,但后来我想到了制作一个小菜单来访问多个小游戏(到目前为止只是为了好玩/练习)。所以我实际上成功了,然后它发生了……我在 JFrames 中制作了我所有的游戏,所以,为了让菜单也成为另一个 JFrame,所以我有这么多窗口……一直!
我做了一些研究,人们通常会为这类东西制作 Jpanels。但我不知道如何将我的游戏(井字游戏)转移到 JPanel 并使其完全按原样工作......这是我的JFrame中井字游戏的代码……IDE是netbeans。
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.*;
public class Gato extends javax.swing.JFrame implements ActionListener {
Boton MAPA[][];
public static boolean turno=true;
public Gato(){
initComponents();
MAPA= new Boton[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
MAPA [i][j]=new Boton();
MAPA[i][j].u.setBounds((i*230)+10,(j*230)+10,230,230);
MAPA[i][j].u.addActionListener(this);
this.add(MAPA[i][j].u);
}
}
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel o=new JLabel("Hola");
o.setBounds(60, 60, 100, 100);
this.add(o);
}
【问题讨论】:
-
对于一个空间中的许多组件(例如游戏和菜单),请使用
CardLayout(在框架中),如short example所示。 -
o.setBounds(60, 60, 100, 100);Java GUI 可能必须在多个平台、不同的屏幕分辨率和使用不同的 PLAF 上工作。因此,它们不利于组件的精确放置。要为强大的 GUI 组织组件,请改用布局管理器或 combinations of them,以及 white space 的布局填充和边框。