2014-03-28 42 views
1

我已經有一個JInternalFrame與按鈕和文本字段,但現在我想添加一個JScrollPane這個內部框架,我不知道如何。如何將JScrollPane添加到JInternalFrame?

可以添加JScrollPane而不將所有組件再次添加到JInternalFrame?怎麼樣?

謝謝!

我在NetBeans,Design視圖中添加了按鈕和文本字段。

+0

需要更多的信息來幫助。你是如何添加按鈕和文本字段的?你會以類似的方式添加滾動窗格。 –

+0

爲了儘快提供更好的幫助,請發佈[MCVE](http://stackoverflow.com/help/mcve)(最小完整和可驗證示例)。 –

+1

這看起來類似於[我昨天回答的問題](http://stackoverflow.com/questions/22698509/scroll-bar-en-jinternalframe)。您創建一個JScrollPane並向其視口添加一個JPanel,然後將其添加到您的JInternalFrame中。 –

回答

4

的作成一個JScrollPane,並添加一個JPanel,它的視口,然後添加到您的JInternalFrame的非常簡單的例子:

import java.awt.BorderLayout; 
import java.awt.Dimension; 
import java.awt.GridLayout; 

import javax.swing.JButton; 
import javax.swing.JDesktopPane; 
import javax.swing.JInternalFrame; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 

public class AddStuffToScrollPane { 
    public static void main(String[] args) { 
     JPanel panel = new JPanel(new BorderLayout()); 
     panel.add(new JTextArea(20, 30), BorderLayout.CENTER); 
     panel.add(new JPanel(new GridLayout(1, 0)) { 
     { 
      add(new JButton("Foo")); 
      add(new JButton("Bar")); 
     } 
     }, BorderLayout.PAGE_END); 
     JScrollPane scrollPane = new JScrollPane(panel); 

     JInternalFrame internalFrame = new JInternalFrame("InternalFrame", true, 
      true); 
     internalFrame.getContentPane().add(scrollPane); 
     internalFrame.setPreferredSize(new Dimension(200, 200)); 
     internalFrame.setSize(internalFrame.getPreferredSize()); 
     internalFrame.setVisible(true); 
     JDesktopPane desktopPane = new JDesktopPane(); 
     desktopPane.setPreferredSize(new Dimension(400, 400)); 
     desktopPane.add(internalFrame); 
     JOptionPane.showMessageDialog(null, desktopPane); 
    } 
} 

如果你得到什麼,你應該得到的最重要的帶回家的消息all:將GUI類用於創建JPanels,而不是JFrames,而不是JInternalFrames。如果你可以創建一個體面的JPanel,那麼你可以把它放在任何需要的地方:在JFrame,或JInternalFrame或JScrollPane中......在任何地方!

+0

非常感謝你!!!!!!!!!天才哈哈哈 – MartinGian