02. december 2006 - 15:43
Der er
4 kommentarer og 1 løsning
Java: ScrollPanel
Jeg har et JScrollPanel, som jeg ønsker at automatik at scroll'e til bunden. Jeg har derfor denne lille kode: scrollBetList.getVerticalScrollBar().setValue(200); Der har jeg sat den til 200, da der ikke er 200 i komponenter i min liste..men er der ikke en mere rigtig måde at gøre det på?
Annonceindlæg fra Conscia
03. december 2006 - 09:40
#2
Det virker desværre ikke helt :( Prøv at se denne kode: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; class Main { private static JList betList; private static ArrayList<Double> betArray = new ArrayList<Double>(); private static JScrollPane scrollBetList; public static void main(String[] args) { JFrame frame = new JFrame("Testing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); betList = new JList(); betList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); scrollBetList = new JScrollPane(betList); scrollBetList.setPreferredSize(new Dimension(250,300)); JButton addButton = new JButton("Tilføj"); panel.add(scrollBetList); panel.add(addButton); frame.add(panel); for (int n = 0;n<50;n++) { addInt(); } addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { addInt(); } }); frame.setSize(800,500); frame.setLocation(200,200); frame.setVisible(true); } public static void addInt() { betArray.add(Math.random()); betList.setListData(betArray.toArray()); betList.setSelectedIndex(betArray.size()-1); scrollBetList.getVerticalScrollBar().setValue(scrollBetList.getVerticalScrollBar().getMaximum()); } } Som du kan se, så scroller den ikke helt i buden :(
03. december 2006 - 09:40
#3
Det virker desværre ikke helt :( Prøv at se denne kode: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; class Main { private static JList betList; private static ArrayList<Double> betArray = new ArrayList<Double>(); private static JScrollPane scrollBetList; public static void main(String[] args) { JFrame frame = new JFrame("Testing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); betList = new JList(); betList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); scrollBetList = new JScrollPane(betList); scrollBetList.setPreferredSize(new Dimension(250,300)); JButton addButton = new JButton("Tilføj"); panel.add(scrollBetList); panel.add(addButton); frame.add(panel); for (int n = 0;n<50;n++) { addInt(); } addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { addInt(); } }); frame.setSize(800,500); frame.setLocation(200,200); frame.setVisible(true); } public static void addInt() { betArray.add(Math.random()); betList.setListData(betArray.toArray()); betList.setSelectedIndex(betArray.size()-1); scrollBetList.getVerticalScrollBar().setValue(scrollBetList.getVerticalScrollBar().getMaximum()); } } Som du kan se, så scroller den ikke helt i buden :(