2015-06-21 143 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 ) –