2016-05-20 4 views
0

私は、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(); 
    } 
} 

とにかく、あなたが私に与えることができる任意の助けがあります。前もって感謝します。

+0

オーバーライド 'paintComponent()'、(http://stackoverflow.com/ a/14001011/230513)。 – trashgod

+0

'f1.dispose(); f3 = new JFrame( "Two Player Pong"); '[複数のJFramesを使う、良い/悪い練習]を参照してください。(http://stackoverflow.com/q/9554636/418556) –

+0

私は投票していますJavaチュートリアルの[Performing Custom Painting](https://docs.oracle.com/javase/tutorial/uiswing/painting/)レッスンを行うことで最も解決されるので、この質問をトピックとして閉じてください。 –

答えて

関連する問題