1

これは私を完全に夢中にさせてきました。この長方形を表示できません。私はプログラミングが初めてで、学習経験として 2D でポンを再現しようとしています。コードは次のとおりです。

package ping;
import javax.swing.*;

public class Pong extends JFrame implements MouseListener {

/**
 * 
 */
private static final long serialVersionUID = 1L;
/**
 * @param args
 */
public Pong(String title) {
    this.setTitle(title);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.getContentPane().setBackground(Color.RED);
    this.getContentPane().setLayout(null);
    this.setSize(500, 500);
    Paddles a = new Paddles(), b = new Paddles();
    a.setBounds(225, 25, 50, 10); b.setBounds(225, 475, 50, 10);
    this.getContentPane().add(a); this.getContentPane().add(b);
    a.setVisible(true); b.setVisible(true);
    this.getContentPane().addMouseListener(this);
    this.setVisible(true);
}
public static void main(String[] args) {
    // TODO Auto-generated method stub
        Pong game = new Pong("Java Pong");}

次に、パドル クラス:

import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JComponent;
public class Paddles extends JComponent {

/**
 * 
 */
private static final long serialVersionUID = 1L;
public Paddles() {}
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setColor(Color.BLACK);
    g.drawRect(0,0,0,0);
    g.fillRect(0,0,0,0);
    System.out.println("paintworks");
    System.out.println(Integer.toString(this.getY()));
}

}

前もって感謝します!

4

2 に答える 2

4

サイズがゼロの長方形があります

これは更新された方法です。

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setColor(Color.BLACK);
    g.drawRect(this.x,this.y,10,10);   // look at the api this command is redundant
    g.fillRect(this.x,this.y,10,10);   // as fill rect will overdraw it anyway.
    System.out.println("paintworks");
    System.out.println(Integer.toString(this.getY()));
}
于 2013-06-12T00:31:21.683 に答える
1
g.drawRect(0,0,0,0);
g.fillRect(0,0,0,0);

これらの行はどちらも、サイズのないものを描画することを示しています。最後の 2 つのパラメーターは、幅と高さを示す必要があります。

詳細については、javadocを参照してください。

于 2013-06-12T00:18:35.700 に答える