Frame "frissítése" hogyan? (java, többi lent)
Tehát adott egy frame. Ezen van két panel.
Ha lenyomásra kerül egy bizonyos gomb, akkor a frame-ről eltűnik a két panel, helyén egy gomb jelenik meg. (Nem maga az ablak szűnik meg és nyílik egy másik)
JFrame f = new JFrame( );
JPanel p = new JPanel();
JPanel p1 = new JPanel();
JButton gomb = new JButton("gomb");
f.add(p);
f.add(p1);
f.setLayout(null);
p.setBounds(0, 0, 400, 400);
p1.setBounds(400, 0, 100, 50);
p.setBackground(Color.red);
p1.setBackground(Color.green);
f.setSize(800,600);
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.setVisible(true);
f.addKeyListener(new lenyomott() );
class lenyomott implements KeyListener{
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_D ){
}
}
A gond ott van, hogy próbáltam már több lehetőséget, de egyik se vált be. Tehát maradtak a panelek a helyükön.
Miket próbáltál?
f.invalidate();
f.validate();
f.repaint();
vagy
SwingUtilities.updateComponentTreeUI(f);
f.invalidate();
gomb.setBounds(0, 0, 100, 30);
f.add(gomb);
f.validate();
f.repaint();
Ezt próbáltam már pl. Nem jó.
SwingUtilities.updateComponentTreeUI(f);
Ezt nem próbáltam, de nem változik semmi se.
Guglizás volt.
Ajánlják ezt, azt, nem jó.
de akkor próbálkozás feleslegesen:
1.: ajánlat:
SwingUtilities.updateComponentTreeUI(frame);
= nem jó.
2. ajánlat:
frame.invalidate();
frame.validate();
frame.repaint();
= nem jó.
3. ajánlat:
f.setVisible(false); //this will close frame i.e. NewJFrame
gomb.setBounds(0, 0, 100, 30);
f.add(gomb);
f.setVisible(true);
= nem jó. Ugyanúgy két panel látható.
Inkább nem próbálkozok tovább, mert lehet, hogy hoznám a 23. próbálkozást is.
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!