2015-10-19 58 views
0

我想知道是否有一种方法来添加一个JScrollPane到JList,其中该列表是在JPanel上。我到处寻找这方面的例子,但我找不到任何东西。滚动不出现。Java,添加JScrollPane列出一个JPanel

这里是我的代码:

import java.awt.Dimension; 
import javax.swing.*; 
import javax.swing.ListSelectionModel; 

public class MyClass{ 
public static void main(String args[]){ 

    //Declaring JFrame, JPanel, JList, JScrollPane objects 
    JFrame frame = new JFrame(); 
    JPanel panel = new JPanel(); 
    JList list; 
    JScrollPane scroll; 
    String[] numberTest = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}; 

    //JFrame, frame 
    frame.setResizable(false); 
    frame.setLocationRelativeTo(null); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(500, 500); 
    frame.setVisible(true); 

    //JPanel, panel 
    panel.setLayout(null); 
    frame.add(panel); 

    //JList, list 
    list = new JList(numberTest); 

    //list properties 
    list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    list.setLayoutOrientation(JList.VERTICAL); 
    list.setVisibleRowCount(3); 

    //Add JScrollPane to list [What I need help with, its not working] 
    JScrollPane listScroller = new JScrollPane(list); 
    listScroller.setPreferredSize(new Dimension(250, 80)); 

    //Setbounds, add list and repaint frame 
    list.setBounds(25, 25, 100, 100); 
    panel.add(list); 
    frame.repaint(); 

} 
} 
+0

将'listScroller'添加到'panel'而不是'list'。 –

+0

'panel.setLayout(null);'是问题之一 – MadProgrammer

回答

0

添加JScrollPane中来的JPanel。

public class MyClass{ 
public static void main(String args[]){ 

//Declaring JFrame, JPanel, JList, JScrollPane objects 
JFrame frame = new JFrame(); 
JPanel panel = new JPanel(); 
JList list; 
JScrollPane scroll; 
String[] numberTest = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}; 

//JFrame, frame 
frame.setResizable(false); 
frame.setLocationRelativeTo(null); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(500, 500); 
frame.setVisible(true); 

//JPanel, panel 
panel.setLayout(null); 
frame.add(panel); 

//JList, list 
list = new JList(numberTest); 

//list properties 
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
list.setLayoutOrientation(JList.VERTICAL); 
list.setVisibleRowCount(3); 

//Add JScrollPane to list [What I need help with, its not working] 
JScrollPane listScroller = new JScrollPane(list); 
listScroller.setPreferredSize(new Dimension(250, 80)); 

//Setbounds, add list and repaint frame 
listScroller.setBounds(25, 25, 100, 100); 
panel.add(listScroller); 
frame.repaint(); 
} 
}