Avatar billede dennism Nybegynder
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å?
Avatar billede winners79 Nybegynder
02. december 2006 - 20:07 #1
scrollBetList.getVerticalScrollBar().setValue(scrollBetList.getVerticalScrollBar().getMaximum());
Avatar billede dennism Nybegynder
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 :(
Avatar billede dennism Nybegynder
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 :(
Avatar billede dennism Nybegynder
03. december 2006 - 09:41 #4
Beklager - der skete vist en lille fejl :(
Avatar billede dennism Nybegynder
12. december 2006 - 14:02 #5
.lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester