Avatar billede agent29 Nybegynder
16. december 2001 - 11:27 Der er 4 kommentarer og
1 løsning

Scrollpane?? (haster)

Hejsa,

Hvordan får man en JScrollPane til tegne at sine scrollbarer, selv om den ikke ligger på en contentpane?

Eks:

JList list = new JList();
JScrollPane sp = new JScrollPane(list);
Panel pane = new Panel();
pane.add(sp);
getContentPane().add(pane);

Ovenstående virker bare ikke, den tegner ingen scrollbarer, når der er behov for det.

Et godt og hurtigt eksempel på en løsning vil rigtig lækkert!!

Mvh
Tonni Aagesen
Avatar billede soreno Praktikant
16. december 2001 - 11:33 #1
JScrollPane sp = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
Avatar billede soreno Praktikant
16. december 2001 - 11:35 #2
tror du ikke også at du skulle bruge en JPanel istedet for Panel ?
Avatar billede agent29 Nybegynder
16. december 2001 - 11:55 #3
Hej,

Det ville sikkert virke hvis du så add\'ede sp direkte til contentpane(sp), men det er jo ikke tilfædet i mit eksempel. Her bliver den først add\'et til en JPanel, og denne bliver så add\'et til contentpane. Det er den JPanel der ligger i mellem JScrollPane og contentPane der skaber problematikken.

Ellers var det saftsuseme hurtig svaret!

Mvh
Tonni Aagesen
Avatar billede soreno Praktikant
16. december 2001 - 12:05 #4
følgende kode laver altså en scrollbar:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class TestAfScrollPanel extends JFrame implements WindowListener, KeyListener{

    private int frameWidth = 640;
    private int frameHeight = 480;
    private String[] test = {\"Linie1\", \"Linie2\", \"Linie3\", \"Linie4\", \"Linie5\", \"Linie6\", \"Linie7\" };
    private JList list = new JList(test);
    JScrollPane sp = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    JPanel pane = new JPanel();


    public TestAfScrollPanel(){
        createFrame();
    }

    private void createFrame(){
        setTitle(\"TestAfScrollPanel\");
        setResizable(false);
        addKeyListener(this);
        addWindowListener(this);   

        pane.add(sp);
        getContentPane().add(pane);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setSize(new java.awt.Dimension(frameWidth, frameHeight));
        setLocation((screenSize.width-frameWidth)/2, (screenSize.height-frameHeight)/2);
    }

    public void windowOpened(WindowEvent e){}
    public void windowClosing(WindowEvent e){ System.exit(0);}
    public void windowClosed(WindowEvent e){}
    public void windowIconified(WindowEvent e){}
    public void windowDeiconified(WindowEvent e){}
    public void windowActivated(WindowEvent e){}
    public void windowDeactivated(WindowEvent e){}

    public void keyReleased(KeyEvent e){}
    public void keyTyped(KeyEvent e){}
    public void keyPressed(KeyEvent e){
        if(e.getKeyCode()==27)
            System.exit(0);
    }

}

class Main{
    public static void main(String args[]){
          new TestAfScrollPanel().show();
    }
}
Avatar billede agent29 Nybegynder
16. december 2001 - 20:17 #5
Hej soreno,

Ja, dit eksempel virker fint - så må jeg også kunne få det til at virke i min app. :-)

Tak for svaret

Mvh
Tonni Aagesen
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