2012-03-24 86 views
0

我剛開始使用小程序,所以我不太好。JTextPane填充小程序框

public class AppletTest extends JApplet{  
    public void init(){ 
    try{ 
     SwingUtilities.invokeAndWait(new Runnable(){public void run(){ 
     setSize(500,500); 
     JLabel lbl = new JLabel("Hello World"); 
     add(lbl); 
     JTextPane pane = new JTextPane(); 
     pane.setSize(200, 200); 
     add(pane); 
     }}); 
    }catch(Exception e){ 
     System.err.println("Error Occurred"); 
    } 
    } 
} 

我想要它做的是使500 500小程序是200 200元。但是,當我跑的程序,文本窗格中閃現文本窗格:我最近使用此代碼嘗試一個正確尺寸的片刻然後填充小程序並覆蓋我在小程序中放置的其他任何東西。如果我擴展了小程序(通過拖動角落操縱它),文本窗格也會增長。我試過這個,並得到了與JButton和JPasswordField相同的結果。有什麼我失蹤?我試過setBounds(int i,int j,int k,int l)但是我得到了同樣的結果。任何幫助?

+1

您應該瞭解Swing佈局管理器的用法。你會在那裏找到你的答案。 – 2012-03-24 04:50:50

回答

1

你需要改變兩兩件事:

  1. 明確設置LayoutManagerFlowLayout很簡單,在這裏工作得很好)

  2. 呼叫setPreferredSize()而不是setSize()JTextPanel

以下是修改後的代碼:

import java.awt.Dimension; 
import java.awt.FlowLayout; 

import javax.swing.JApplet; 
import javax.swing.JLabel; 
import javax.swing.JTextPane; 
import javax.swing.SwingUtilities; 

public class AppletTest extends JApplet{  
    public void init(){ 
    try{ 
     SwingUtilities.invokeAndWait(new Runnable(){public void run(){ 
     setSize(500,500); 

     // explicitly set a layout manager 
     setLayout(new FlowLayout()); 

     JLabel lbl = new JLabel("Hello World"); 
     add(lbl); 
     JTextPane pane = new JTextPane(); 

     // use setPreferredSize, not setSize 
     pane.setPreferredSize(new Dimension(200, 200)); 

     add(pane); 
     }}); 
    }catch(Exception e){ 
     System.err.println("Error Occurred"); 
    } 
    } 
} 
+0

謝謝你解決了這個問題。 – 2012-03-24 19:41:39