私はこのゲームを作成し始めました。最初に問題が発生しました。オブジェクトをインスタンス化していることと、パネル表示を行っていることを示していますが、ビジュアルには何の効果もありません。カードレイアウトはプロセスの作業後にパネルを変更しません
コードは次の通りである:フレームを変更
オリジナルクラス
public class Parking_Mania {
public static void main(String []args)throws Exception
{
new GameFrame("Paking Mania");
}
}
ゲームフレームクラス
public class GameFrame extends JFrame{
public GameFrame(String name)
{
this.setTitle(name);
this.setSize(640,510);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setVisible(true);
Frames frame=new Frames();
this.add(frame);
frame.panel.show(frame, "opening");
}
}
パネル
public class Frames extends JPanel{
CardLayout panel= new CardLayout();
public Frames()
{
this.setLayout(panel);
System.out.println("hello");
Opening op=new Opening();
nxtframe nf= new nxtframe();
this.add(op, "opening");
this.add(nf, "nt");
}
public void nxtf()
{
panel.show(this, "nt");
}
}
第パネル
public class Opening extends JPanel{
JButton but=new JButton();
public Opening(){
this.setLayout(null);
this.setBackground(Color.BLACK);
add(but);
but.setText("next frame");
but.setBounds(0, 0, 110, 120);
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
Frames f=new Frames();
f.nxtf();
}
});
}
public void paint(Graphics g)
{
g.fillRect(110, 120, 110, 120);
}
}
第二パネル
public class nxtframe extends JPanel{
JButton but=new JButton();
public nxtframe(){
System.out.println("hello");
this.setLayout(null);
add(but);
but.setText("next frame");
but.setBounds(0, 0, 110, 120);
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
}
});
}
public void paint(Graphics g)
{
g.setColor(Color.BLUE);
g.fillOval(110, 120, 110, 120);
}
}
PS:私はそれは自明であると仮定して、私はコメントを追加する気にしませんでした。コメントを追加する必要がある場合はすぐに追加してください。
回答は編集を参照してください。質問があれば質問してください。 –
はあなたの助けを借りて非常にうまくいっています。 –