2013-06-04 70 views
0

我想在JPanel上繪製字符串和直形符號。自定義繪畫 - 滾動條未出現在JScrollPane中

我將一個JPanel添加到JScrollPane中,但是如果我繪製某些字符串,則不會出現滾動條。

這裏是一些代碼例如。當ViewportView部件的優選尺寸比JScrollPane更大

package gui; 

import java.awt.Color; 
import java.awt.Graphics; 

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

public class MainView extends JFrame { 

    private SelfDrawnPanel sdp; 
    private JScrollPane jsp; 

    public MainView(){ 
     super("TestProgram"); 
     this.setSize(300, 300); 

     this.setDefaultCloseOperation(EXIT_ON_CLOSE); 

     this.sdp = new SelfDrawnPanel(); 
     this.jsp = new JScrollPane(this.sdp); 

     this.add(this.jsp); 

     this.setVisible(true); 
    } 

    class SelfDrawnPanel extends JPanel { 

     public void paint(Graphics g) { 

      for (int i = 0; i < 100; i++) { 
       g.setColor(Color.BLACK); 
       g.drawString("test", 10, (i*10)+10); 
      } 

     } 
    } 
} 

回答

2
滾動條

出現。目前JPanelSelfDrawnPanel有一個非常小的(10 x 10)首選大小。通過覆蓋getPreferredSize設置首選大小:

@Override 
public Dimension getPreferredSize() { 
    return new Dimension(400, 1010); 
} 

旁白:在Swing風俗畫是通過覆蓋paintComponent而不是paint完成。還請記住調用super.paintComponent(g)並使用@Override註釋。閱讀有關自定義繪畫here

+0

Ahh okai謝謝你的提示,幫助很多! – XenonUnlimited