问题使用的图形面板在Java摆库
-
07-07-2019 - |
题
嘿大家,我试图运行以下程序,但是遇到了一个异常.我是新来的Java摆库所以我可以做一些非常愚蠢的。不管怎样这是我的两个类别,我只是玩弄于现在和我所想要做的就是绘制一个该死的圆(ill要绘制一个gallow,刽子手上,它在结束)。
package hangman2;
import java.awt.*;
import javax.swing.*;
public class Hangman2 extends JFrame{
private GridLayout alphabetLayout = new GridLayout(2,2,5,5);
private Gallow gallow = new Gallow();
public Hangman2() {
setLayout(alphabetLayout);
setSize(1000,500);
setVisible( true );
}
public static void main( String args[] ) {
Hangman2 application = new Hangman2();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
package hangman2;
import java.awt.*;
import javax.swing.*;
public class Gallow extends JPanel {
private Graphics g;
public Gallow(){
g.fillOval(10, 20, 40, 25);
}
}
的异常来自于在克。fillOval线。
在此先感谢,
托梅克
解决方案
你得到展会上因为 g
未设定,因此,它的 null
.此外,你不应该这样做图在构造。超载 paintComponent(Graphics g)
代替。
public class Gallow extends JPanel {
public paintComponent(Graphics g){
g.fillOval(10, 20, 40, 25);
}
}
我也想看看 BufferedImage.
其他提示
几件事情:不要忘记小组到的 JFrame
.和复盖 paint()
方法 JPanel
为你定制的绘画。你不需要声明一个形象由于 JPanel
's涂料的方法将有一个参考一个在任何情况下。
package hangman2;
import java.awt.*;
import javax.swing.*;
public class Hangman2 extends JFrame{
private GridLayout alphabetLayout = new GridLayout(2,2,5,5);
private Gallow gallow = new Gallow();
public Hangman2() {
setLayout(alphabetLayout);
add(gallow, BorderLayout.CENTER);//here
setSize(1000,500);
setVisible( true );
}
public static void main( String args[] ) {
Hangman2 application = new Hangman2();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
package hangman2;
import java.awt.*;
import javax.swing.*;
public class Gallow extends JPanel {
public Gallow(){
super();
}
public void paint(Graphics g){
g.fillOval(10, 20, 40, 25);
}
}
不隶属于 StackOverflow