私は、Javaでコーディングするのが本当に初めてです(一般的にコーディングします)。私は現在、学校で11年生のCSの真ん中にいますが、私たちがカバーしたことはすべて非常に簡単です。すでに設定されているJPanelを試してみると失敗する
私たちが頂点に立つために、私はポンを作りようとしています。私が望んだことをするためにJPanelを使わなければならないことに気付きましたが、まだConsoleを使用していなかったので、私はこの知識を0にしていました。
とにかく、既に宣言されているJPanelを描画するのに問題があります。 JPanelでの描画方法に関するすべてのソリューションやチュートリアルには、まったく異なるクラスを使用することが含まれていました。私はこれを既存のコードに実装する方法を知りませんでした。それは...
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.event.*;
import java.awt.*;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class pong extends JPanel {
private JFrame f3, f2, f1;
private JPanel pLabel, pButton, pPong1, pPong2;
private JButton b1, b2;
private JLabel lab, score;
int singleScore = 0;
int doubleScore1 = 0;
int doubleScore2 = 0;
int By;
int Bx;
int Paddle1y;
int Paddle2y;
public pong()
{
gui();
}
public void gui()
{
f1 = new JFrame("Pong!");
f1.setVisible(true);
f1.setSize(700, 500);
f1.setResizable(false);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pButton = new JPanel();
pButton.setBackground(Color.BLACK);
pLabel = new JPanel();
pLabel.setBackground(Color.WHITE);
b1 = new JButton("1 Player");
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
pong1();
}
});
b2 = new JButton("2 Players");
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
pong2();
}
});
lab = new JLabel("Welcome to Pong!");
pButton.add(b1);
pButton.add(b2);
pLabel.add(lab);
f1.add(pButton, BorderLayout.SOUTH);
f1.add(pLabel, BorderLayout.CENTER);
}
public void pong1()
{
f1.dispose();
f2 = new JFrame("One Player Pong");
f2.setVisible(true);
f2.setSize(700, 500);
f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f2.setResizable(false);
pPong1 = new JPanel();
pPong1.setVisible(true);
pPong1.setBackground(Color.WHITE);
score = new JLabel("Score = " + singleScore);
f2.add(pPong1);
pPong1.add(score, BorderLayout.NORTH);
}
public void pong2()
{
f1.dispose();
f3 = new JFrame("Two Player Pong");
f3.setVisible(true);
f3.setSize(700, 500);
f3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f3.setResizable(false);
pPong2 = new JPanel();
pPong2.setVisible(true);
pPong2.setBackground(Color.WHITE);
score = new JLabel("Player 1 Score = " + doubleScore1 + " Player 2 Score = " + doubleScore2);
f3.add(pPong2);
pPong2.add(score, BorderLayout.NORTH);
}
public static void main(String[] args)
{
new pong();
}
}
とにかく、あなたが私に与えることができる任意の助けがあります。前もって感謝します。
オーバーライド 'paintComponent()'、(http://stackoverflow.com/ a/14001011/230513)。 – trashgod
'f1.dispose(); f3 = new JFrame( "Two Player Pong"); '[複数のJFramesを使う、良い/悪い練習]を参照してください。(http://stackoverflow.com/q/9554636/418556) –
私は投票していますJavaチュートリアルの[Performing Custom Painting](https://docs.oracle.com/javase/tutorial/uiswing/painting/)レッスンを行うことで最も解決されるので、この質問をトピックとして閉じてください。 –