2016-11-18 177 views
0

所以我試圖用java製作瀏覽器。我想讓用戶能夠滾動網站的內容。我試過把Janel放在JScrollPane中,但是JPanel沒有顯示出來。我得到這個問題後,我做了一個新的Java項目來測試這個問題,問題仍然存在。 下面是測試項目的代碼:JScrollPane不顯示JPanel

package exp; 

import java.awt.Color; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 

public class test { 
    public static void main(String[] args) { 
     JFrame f = new JFrame("test"); 
     JScrollPane s = new JScrollPane(); 
     JPanel p = new JPanel(); 
     s.add(p); 
     f.add(s); 
     f.setVisible(true); 
     f.setSize(800, 600); 
     p.setBackground(Color.WHITE); 
     p.getGraphics().drawString("test", 50, 50); 

    } 
} 

這是它顯示: This is what the code dipslayed

回答

6
JScrollPane s = new JScrollPane(); 
JPanel p = new JPanel(); 
s.add(p); 

不要直接將組件添加到滾動窗格。該組件需要被添加到滾動窗格的viewport。通過使用這樣做:

JPanel p = new JPanel(); 
JScrollPane s = new JScrollPane(p); 

JPanel p = new JPanel(); 
JScrollPane s = new JScrollPane(); 
s.setViewportView(p); 

不要使用getGraphics(...)方法做畫:

// p.getGraphics().drawString("test", 50, 50); 

你應該重寫一個JPanelpaintComponent()方法將面板添加到框架。請參閱Custom Painting上的Swing教程部分以獲取更多信息和工作示例。

保持一個鏈接教程方便所有的Swing基礎。

+0

非常感謝 –