2015-06-21 111 views
0

我正在使用Java Swing的教训,但我遇到了障碍。在这个项目中,我们正在为不同组件设置大小,但是,教师专门输入了一行我并不特别了解的代码,我只是在寻找这行代码的概念的解释。声明实例类没有实例化和初始化 - 澄清

基本上,我知道如何创建一个类的对象。假设我们想要一个新的扫描仪类。扫描仪类创建一个对象很简单,并且似乎如下所示:

public class ScannerProgram { 

import java.util.Scanner; //Imports Scanner Class 

public static void main(String[] args) { 

Scanner input = new Scanner(System.in); 
//^Creates object of the Scanner Type, and calls the "Scanner" constructor. 
} 

} 

在我看的教训之一,教师是使用扩展JPanel用户创建的类创建自定义的组件,我们正在寻求获得首选尺寸。教师不这样说:

import java.awt.Dimension; //Imports Dimension class 
import javax.swing.JPanel; //Imports JPanel class 


public class FormPanel extends JPanel { 

    public FormPanel() { 

     Dimension dim = getPreferredSize(); //Question 1 
     System.out.println(dim); //Prints results 
     //The result is java.awt.Dimension[width=10,height=10] 


    } 
} 

问题1:我想知道到底是什么这行代码是干什么。我知道你正在声明一个“Dimension”类型的变量,但之后会变得令人困惑,因为你没有调用构造函数。在这种情况下,变量被设置为等于“getPreferredSize()”,我不是特别确定它在做什么。它是否从Dimension类调用特定的方法?这是我的猜测,但我其实并不确定。感谢任何人愿意揭示这一点。

此外,如有需要,随时更改标题。

回答

4

getPreferredSize()JPanel的方法(或超类的JPanel的)返回一个Dimension实例。对构造函数构造的实例调用getPreferredSize()

+1

谢谢你,我发现这非常有帮助! 我甚至研究过,并发现它在文档中如何返回Dimension:http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setPreferredSize(java.awt.Dimension ) –