2011-11-08 99 views
1

我有一個從JPanel擴展的java類。從JPanel擴展這個類的基本目的是我想在這個JPanel中繪製一些圖形圖。這個類的代碼如下:JPanel不顯示圖形

import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.Image; 
import javax.swing.JPanel; 
public class ObjectViewer extends JPanel { 
    public void paintComponent(Graphics g) { 
     //just for testing 
     g.drawRect(0, 0, 100, 10); 

     g.drawLine(150, 150, 250, 150); 
    } 
} 

現在我通過使用下面的代碼在JScrollPane中加載此JPanel。

JPanel jpnl = new ObjectViewer(); 
jScrollPane2.add(jpnl);//Note: I drag and drop this JScrollPanel at desired location from NetBeans gui. 

,但我無法看到在JScrollPane的任何圖形(矩形和線),有什麼我做錯了什麼建議?

+0

沒有JScrollPane它工作嗎? –

回答

3

你永遠不會將你的JPanel直接添加到JScrollPane中,而是直接添加到它的視口中。因此,例如,不

jScrollPane2.add(jpnl); 

而是類似:

jScrollPane2.setViewportView(jpnl); 

jScrollPane2.getViewport().add(jpnl); 

或者,您可以添加的JPanel作爲在滾動的構造函數的參數。

+1

挑剔(答案是正確的,當然,+1 :-) - 當有委託方法時,我寧願你不要推薦調用某個包含組件的方法:從概念上講,這是無需破解封裝 – kleopatra