无法理解Color Panel构造函数中的Dimension参数?

时间:2015-11-01 05:55:20

标签: java user-interface jpanel

package GUI;

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;

public class ColorPanel extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public ColorPanel(Color col){
        this.setBackground(col);
    }
    public ColorPanel(Color col , int width,int height){

        this.setPreferredSize(new Dimension(width,height));
        this.setBackground(col);
    }

}

我的问题在于这一行:“setPreferredSize(new Dimension(width,height))” 为什么我要编写new Dimension以及为什么我不能只写出类似的内容 “setPreferredSize(width,height)”请帮助并告诉我为什么我需要说new Dimension

2 个答案:

答案 0 :(得分:0)

因为你正在调用Jpanel的setPreferredSize函数(通过超类),它只接受Dimension作为输入http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setPreferredSize(java.awt.Dimension)

HTH,

答案 1 :(得分:0)

JPanel确实有一个setPreferredSize(Dimension d) 其背后的原因是,当用户明确使用setPreferredSize(d)时,它的行为会有所不同 如果您没有设置JPanel.isPreferredSizeSet(),则可以检查enter image description here是否会返回null 将首选大小设置为null可恢复默认行为 绘制JPanel及其内容时,此行为会影响Swing布局和GUI。