Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 立根台不在Jframe的构造中工作_Java_Swing_Jframe - Fatal编程技术网

Java 立根台不在Jframe的构造中工作

Java 立根台不在Jframe的构造中工作,java,swing,jframe,Java,Swing,Jframe,我正在玩JFrames,但当我试图设置JFrame的背景色时,它不起作用。据我所知,您需要在JFrame的contentpane上设置背景色。在这种情况下,我不明白为什么这不起作用 class drawCircles extends JFrame{ int [][] s; Container c; public drawCircles(int [][]circleArray){ super(); setSize(400, 400); getContentPane().se

我正在玩JFrames,但当我试图设置JFrame的背景色时,它不起作用。据我所知,您需要在JFrame的contentpane上设置背景色。在这种情况下,我不明白为什么这不起作用

class drawCircles extends JFrame{
int [][] s;
Container c;
public drawCircles(int [][]circleArray){
    super();
    setSize(400, 400);
    getContentPane().setBackground(Color.YELLOW);

    s=circleArray;
    show();
}
编辑:是的,我确实覆盖了油漆

public void paint (Graphics g){
    int width=this.getHeight()/10;
    int start=width;
    int endY=this.getHeight()-width;
    int endX=this.getWidth()-width;

    for(int i=0; i<s.length; i++){
        g.drawLine(i*width, start, i*width, endY);
        //g.drawLine(start, i*width, endX, i*width);

    }
    //g.drawRect(start, start, width*s.length,width*s.length);

    for(int i=0; i<s.length; i++){
        for(int j=0; j<s.length; j++){
            switch(s[i][j]){
            case 0: g.setColor(new Color(252, 177, 177));break;
            case 1: g.setColor(new Color(250, 165, 165));break;
            case 2: g.setColor(new Color(242, 156, 156));break;
            case 3: g.setColor(new Color(224, 133, 133));break;
            case 4: g.setColor(new Color(208, 117, 117));break;
            case 5: g.setColor(new Color(199, 107, 107));break;
            case 6: g.setColor(new Color(191, 98, 98));break;
            case 7: g.setColor(new Color(181, 88, 88));break;
            case 8: g.setColor(new Color(171, 79, 79));break;
            case 9: g.setColor(new Color(161, 71, 71));break;
            default:g.setColor(Color.white);

            }
            g.fillOval(j*width, i*width, width, width);
        }
    }

不要重写JFrame的绘制方法。时期这就是为什么您当前的代码无法工作,因为您不允许JFrame的超级对象进行必要的绘制

添加super的方法可能会很好地解决您的问题:

public void paint (Graphics g) {
  super.paint(g);
  //... your code
但是,您不应该这样做,因为绘制比绘制组件(包括绘制子对象和边框)负责更多的事情


最好重写JPanel的paintComponent,并确保调用super.paintComponent。。。方法在重写中。更重要的是,请阅读Java Swing图形教程。

不要覆盖JFrame的绘制方法。时期这就是为什么您当前的代码无法工作,因为您不允许JFrame的超级对象进行必要的绘制

添加super的方法可能会很好地解决您的问题:

public void paint (Graphics g) {
  super.paint(g);
  //... your code
但是,您不应该这样做,因为绘制比绘制组件(包括绘制子对象和边框)负责更多的事情

最好重写JPanel的paintComponent,并确保调用super.paintComponent。。。方法在重写中。更重要的是,阅读Java Swing图形教程

自定义绘图是在paint中完成的,用于Swing JComponents paintComponent而不是public drawCirclesint[]]circleArray{

不要直接绘制顶级容器,通过覆盖paintComponent和getpreferredsize将JPanel放在那里。否则,是否有零维

在Oracle教程中介绍的basic非常好

自定义绘图是在paint中完成的,用于Swing JComponents paintComponent而不是public drawCirclesint[]]circleArray{

不要直接绘制顶级容器,通过覆盖paintComponent和getpreferredsize将JPanel放在那里。否则,是否有零维

在Oracle教程中介绍的basic非常好


你是否重写了显示方法?如果是的话,使用它的内容,如果不使用SETVISILUTHORT,则显示DISCORE。你是不是给JFrice添加了一些东西?也许是一些JPAND…如果你是,你应该把背景设置成这些组件,或者你重写了JFrice的画图吗?你现在的问题是没有答案的。考虑给我们MOR。e information and code.in paint:super.paintg;作为第一行,您是否覆盖了show方法?如果是,发布其内容,如果不是,请使用setVisibletrue,show已被弃用。您是否向JFrame添加了一些内容?可能是一些JPanel…如果是,您应该将这些组件的背景设置为Toor您是否覆盖了JFrame的paint?您的问题如目前提出的是不可回答的。考虑给我们更多的信息和代码。在油漆:超级油漆;作为第一行感谢气垫船!现在这是有意义的。我只会使用JPAND设置背景颜色。谢谢你的帮助。我需要等待几分钟来接受你的。answer@MichaelNana:很高兴能帮上忙!谢谢气垫船!现在有道理了。我将使用JPanel设置背景颜色。谢谢你的帮助。我需要再等几分钟才能接受你的建议answer@MichaelNana:很高兴它有帮助!非常感谢您对mKorbel的帮助和链接。这对我很有帮助。有关在post java+swing+paintComponent中搜索的重要内容,请注意伟大的代码示例a我们在@HFOE postsThanks中非常感谢您的帮助mKorbel和链接。这对我很有帮助。对于在post java+swing+paintComponent中搜索的其他重要内容,请注意,@HFOE posts中提供了优秀的代码示例