Java-ban hogyan lehet függőleges, görgető sávot hozzáadni panelhoz?
Ide illő forráskód:
(már próbáltam így, úgy, így se jó, úgy se jó)
JPanel panel1 = new JPanel(null);
JScrollPane scrollPane = new JScrollPane(panel1);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBounds(50, 30, 300, 50);
JFrame frame = new JFrame( );
JPanel panel = new JPanel();
JLabel label=new JLabel("<html>asd<br>alma<br>banán<br>citrom<br>dió</html>");
panel.add(label);
panel.add(panel1);
panel.add(scrollPane);
frame.add(panel);
panel.setPreferredSize(new Dimension(100,100));
frame.setSize(100,100);
frame.setVisible(true);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Ez esetben nincs szöveg.
Első próbálkozás:
JPanel panel = new JPanel();
JPanel panel1 = new JPanel(null);
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBounds(0, 0, 100, 100);
JFrame frame = new JFrame( );
JLabel label=new JLabel("<html>asd<br>alma<br>banán<br>citrom<br>dió</html>");
panel.add(label);
panel.add(panel1);
panel.add(scrollPane);
frame.add(panel);
panel.setPreferredSize(new Dimension(100,100));
frame.setSize(100,100);
frame.setVisible(true);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Eredmény:
xception in thread "main" java.lang.IllegalArgumentException: adding container's parent to itself
at java.awt.Container.checkAddToSelf(Container.java:477)
at java.awt.Container.addImpl(Container.java:1088)
at java.awt.Container.add(Container.java:415)
És nem tetszik neki az a sor, hogy:
panel.add(scrollPane);
Második próbálkozás:
(hagyjuk ki a nem-jó sort)
JPanel panel = new JPanel();
JPanel panel1 = new JPanel(null);
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBounds(0, 0, 100, 100);
JFrame frame = new JFrame( );
JLabel label=new JLabel("<html>asd<br>alma<br>banán<br>citrom<br>dió</html>");
panel.add(label);
panel.add(panel1);
// panel.add(scrollPane);
frame.add(panel);
panel.setPreferredSize(new Dimension(100,100));
frame.setSize(100,100);
frame.setVisible(true);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Eredmény van szöveg, de nincs görgetősáv.
Harmadik próbálkozás:
amiért panel1 nem kell, vegyük ki.
JPanel panel = new JPanel();
JPanel panel1 = new JPanel(null);
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBounds(0, 0, 100, 100);
JFrame frame = new JFrame( );
JLabel label=new JLabel("<html>asd<br>alma<br>banán<br>citrom<br>dió</html>");
panel.add(label);
// panel.add(scrollPane);
frame.add(panel);
panel.setPreferredSize(new Dimension(100,100));
frame.setSize(100,100);
frame.setVisible(true);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Eredmény: ugyanaz, mint a második próbálkozásnál.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!