Avatar billede brianvigh Nybegynder
17. maj 2005 - 12:30 Der er 21 kommentarer og
2 løsninger

tegning i Jpanel med Scrollbar

Hej

Jeg prøver at tegne en graf i et Jpanel. Det går fint men Jpanel bliver 1400 pixels bredt så jeg vil have en scrollpane på dette panel.

JPanel panel = new XYGraph(data);
JFrame frame = new JFrame();
JScrollPane scrollPane = new JScrollPane();
scrollPane.add(panel);
frame.add(scrollPane);

men grafen bliver væk jeg får bare en tom frame uden noget som helst.
Er der nogen der kender til dette problem.
Avatar billede kalp Novice
17. maj 2005 - 12:39 #1
hjælper det her?

JPanel panel = new XYGraph(data);
JFrame frame = new JFrame();
JScrollPane scrollPane = new JScrollPane(panel);
frame.add(scrollPane);
Avatar billede brianvigh Nybegynder
17. maj 2005 - 12:45 #2
Ja nu kommer noget af tegningen, men ingen scrollbar. Den skærer af hvor framen slutter.
Avatar billede brianvigh Nybegynder
17. maj 2005 - 12:50 #3
Panel er 500x1450 og framen er 500x500 så der burde kommer nogle scrollbars
Avatar billede kalp Novice
17. maj 2005 - 12:53 #4
Er den en vandret scrollbar du vil have? for så skal man vist angive dette.. den er som standard sat til lodret.
Avatar billede kalp Novice
17. maj 2005 - 12:55 #5
hov sorry.. først bredte og så højde..

Jeg har ikke lige nogen ide til det ellers desværre.. det ikke så tit jeg sætter scrollbar til mine jpanels:)
Avatar billede brianvigh Nybegynder
17. maj 2005 - 13:04 #6
Det er den vandrette jeg gerne vil have, hvordan sætter man den til det?
Avatar billede kalp Novice
17. maj 2005 - 13:18 #7
jScrollPane1.createHorizontalScrollBar();
Avatar billede kalp Novice
17. maj 2005 - 13:19 #8
scrollPane.createHorizontalScrollBar();

til din
Avatar billede brianvigh Nybegynder
17. maj 2005 - 13:22 #9
Nu gør jeg dette og der virker stadig ikke.   

        JScrollPane scrollPane = new JScrollPane(panel);
        scrollPane.createHorizontalScrollBar();
        frame.add(scrollPane);
        frame.setSize(500,500);
Avatar billede kalp Novice
17. maj 2005 - 13:35 #10
den skulle gerne komme vandret.. du må ikke tilføje jPanel til din frame.. kan godt se du ikke gør det i koden du viser.. men måske har du gjort det et andet sted?
Avatar billede _carsten Nybegynder
17. maj 2005 - 21:39 #11
Har du fået det til at virke ???
Avatar billede brianvigh Nybegynder
18. maj 2005 - 16:16 #12
nope det vil stadig ikke virke jeg har kigget det hele igennem og det eneste sted jeg lægger noget i framen er der hvor jeg gør det som er vist ovenfor
Avatar billede _carsten Nybegynder
18. maj 2005 - 18:21 #13
Du får altid vist den horizontale scrollbar enten der er behov for den eller ej vha. nedenstående.



        JScrollPane scrollPane = new JScrollPane(panel);
        scrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        frame.add(scrollPane);
        frame.setSize(500,500);
Avatar billede brianvigh Nybegynder
19. maj 2005 - 23:47 #14
Ja Scrollbaren komme på nu, men man kan ikke scrolle, det er meget mærkeligt. Men du får point for det.
Avatar billede brianvigh Nybegynder
19. maj 2005 - 23:48 #15
Prøv at skriv igen kan ikke acceptere dig
Avatar billede _carsten Nybegynder
20. maj 2005 - 10:02 #16
Nej det er ikke så mærkeligt, den vandrette scrollbar er nemlig ikke nødvendig lige i dette tilfælde, prøv at sætte frame size ned - frame.setSize(250,500) så kan du se det.
Avatar billede brianvigh Nybegynder
21. maj 2005 - 10:29 #17
Hvis jeg gør det så ryger noget af tegningen bare. Men hvordan laver man en tegning som man kan scrolle i?
Avatar billede _carsten Nybegynder
22. maj 2005 - 00:02 #18
Du laver et image i hukommelsen og laver dit tegne arbejde på det, herefter smider du det image op på dit JPanel

Lyneksempel - override paint

    public void paint(java.awt.Graphics g){
      if(offscreen == null) {
            offscreen = (java.awt.image.BufferedImage)createImage(this.getWidth(), this.getHeight());
            g2d = offscreen.createGraphics();
            g2d.setColor(new java.awt.Color(255,255,255));
            g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
            g.drawImage(offscreen, 0, 0, this);
            g2d.setColor(new java.awt.Color(0,0,0));
      }
     
      g.drawImage(offscreen, 0, 0, this);
    }

   
    java.awt.image.BufferedImage offscreen;
    java.awt.Graphics2D g2d;
Avatar billede brianvigh Nybegynder
22. maj 2005 - 13:45 #19
Smukt det virkede squ. Mange tak for hjælpen
Avatar billede _carsten Nybegynder
31. maj 2005 - 21:41 #20
Hvordan er det lige med point ??
Avatar billede brianvigh Nybegynder
24. juni 2005 - 13:57 #21
kan du ikke prøve at ligge et svar. Jeg har prøvet at acceptere men det ser ikke ud til at virke helt.
Avatar billede _carsten Nybegynder
24. juni 2005 - 16:25 #22
Hmmm - har ellers lagt et, men du får da bare et til.

Husk at markere mit navn og tryk accepter.
Avatar billede _carsten Nybegynder
24. juni 2005 - 16:25 #23
Prøver igen
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