2014-02-16 22 views
0

我想在一个JFrame不是单独与它将会滚动 的东西添加jscroll窗格,因为每当我添加一个JScrollPane我必须做出JScrollPane中不会单独出现

JScrollPane p = new JScrollPane(); 
p.createVerticalScrollBar(); 
fr.setContentPane(p); 
fr.revalidate(); 

如果我只是说这这不会出现像:

fr.add(p); 

不会出现..

我不想滚动面板在框架但也许其他东西的按钮单独出现和一个文本框..

任何帮助,将不胜感激

+0

默认为滚动条在需要时才会显示出来(我喜欢)。如果添加的组件不超过滚动窗格的空间,则不会显示滚动条。如果你想滚动条总是出现,那么你需要'p.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_​​ALWAYS);'。另外我没有看到你添加一个组件到滚动窗格。它应该是你添加的'JPanel'。 'JPanel'应该有你的所有组件。 –

+0

我对这个问题的理解是:“我有一个框架,并且这个框架应该包含一个JScrollPane和其他一些组件”。但是当然,当您将ScrollPane设置为Frame的ContentPane时,只有ScrollPane可见。对于我对这个问题的解释是正确的,我会在这里留下这个指针:http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html – Marco13

回答

1
 public class SampleFrame { 
    public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable(){ 
    public void run() 
    { 
    createAndShowGUI(); 
    } 
    }); 
    } 
    public static void createAndShowGUI() 
    { 
    JFrame frame = new JFrame("JFrame with ScrollBar"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JTextArea textArea = new JTextArea(5,20); 
    JScrollPane scrollPane = new JScrollPane(textArea); 
    scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
    scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); 
    frame.getContentPane().add(scrollPane); 
    frame.setSize(300, 200); 
    frame.setVisible(true); 
    } 
} 

    try This 
+0

哇感谢它的工作,但你忘了添加jtextfield? – user3314952