[Java] ScrollBar voor JPanel

Pagina: 1
Acties:

  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Topicstarter
Ik heb een JPanel zonder layout (null) met allemaal componentjes en wil graag dat deze kan scrollen als bijv de splitpane waar hij in zit wordt verkleind. hoe pak ik dat aan?

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je geen layout gebruikt is je preferred size onbekend.... dat levert wat problemen op denk ik... Misschien dat je een LayoutManager moet gebruiken die zich gedraagd als de null layout maar nog wel een preferred-size kan opleveren...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Topicstarter
Kan ik niet zelf gewoon een prefferesize aangeven? hij is toch gewoon altijd even groot....

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Topicstarter
Op zondag 13 januari 2002 16:21 schreef D-RiSe het volgende:
Kan ik niet zelf gewoon een prefferesize aangeven? hij is toch gewoon altijd even groot....
hehe nee dus

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Deze is dus echt heel simpel op te lossen.

Om een panel in een scrollpane moet kunnen scrollen scrollbaar te maken (vage zin), moet je niet alleen de preffered size vastleggen, maar ook de minimum size. Pas als het panel onder deze minimum size komt, krijg je functionerende scroll bars te zien.

Voorbeeldje gegenereerd met Netbeans.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
 * test2.java
 *
 * Created on 13 januari 2002, 16:35
 */

/**
 *
 * @author  Jeroen Leenarts
 */
public class test2 extends javax.swing.JFrame {

    /** Creates new form test2 */
    public test2() {
      initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    private void initComponents() {
      jScrollPane1 = new javax.swing.JScrollPane();
      jPanel1 = new javax.swing.JPanel();
      jButton1 = new javax.swing.JButton();
      jButton2 = new javax.swing.JButton();
      
      addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowClosing(java.awt.event.WindowEvent evt) {
            exitForm(evt);
        }
      });
      
      jPanel1.setLayout(null);
      
      jPanel1.setBackground(java.awt.Color.white);
      jPanel1.setPreferredSize(new java.awt.Dimension(300, 300));
      jPanel1.setMinimumSize(new java.awt.Dimension(300, 300));
      jPanel1.setAutoscrolls(true);
      jButton1.setText("jButton1");
      jPanel1.add(jButton1);
      jButton1.setBounds(100, 80, 81, 27);
      
      jButton2.setText("jButton2");
      jPanel1.add(jButton2);
      jButton2.setBounds(180, 190, 81, 27);
      
      jScrollPane1.setViewportView(jPanel1);
      
      getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
      
      pack();
    }

    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {
      System.exit(0);
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
      new test2().show();
    }


    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    // End of variables declaration

}

Je zult zien, dat wanneer je dit draait, dat er netjes een panel wordt gegenereerd zonder scrollbars. resize dit nu maar is naar een kleiner formaat.

Als je een bepaald formaat hebt wat altijd vastligt, dan moet je de minimum en preffered size exact gelijk maken. maximum size heeft erg weinig effect.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Ik raad je trouwens aan om ipv. null-layout de absolute-layout te gebruiken.

  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Topicstarter
thx

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Hoezo droog. :)

Graag gedaan.
Pagina: 1