Ho un jframe con una status bar
Quando ridimensiono il frame in larghezza e lo faccio diventare molto stretto, i dati sulla statusbar si sovrappongono
La statusbar è formata da 6 jlabel
Io vorrei che i dati che non possono essere visualizzati perchè il frame è troppo stretto, scomparissero 1 alla volta (più l'utente restringe il frmae più jlabel dovrebbero scomparire) e non si sovrapponessero diventando illeggibili come fa attualmente
Posto il codice compilante, sapete dirmi dov'è il problema?
THX
codice:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class StatusBar extends JPanel {
private JLabel userJLabel;
private JLabel groupJLabel;
private JLabel serverJLabel;
private JLabel statusJLabel;
private JLabel versionJLabel;
public StatusBar() {
userJLabel = new JLabel("LABEL UNO");
groupJLabel = new JLabel("LABEL DUE");
serverJLabel = new JLabel("LABEL TRE");
statusJLabel = new JLabel("LABEL QUATTRO");
versionJLabel = new JLabel("LABEL CINQUE");
//create border
BevelBorder loweredBevelBorder1 = (BevelBorder) BorderFactory.createLoweredBevelBorder();
//set border
userJLabel.setBorder(loweredBevelBorder1);
groupJLabel.setBorder(loweredBevelBorder1);
serverJLabel.setBorder(loweredBevelBorder1);
statusJLabel.setBorder(loweredBevelBorder1);
versionJLabel.setBorder(loweredBevelBorder1);
//set statusBar layout
this.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.weightx = 0;
c.gridx = 0;
c.gridy = 0;
c.fill = GridBagConstraints.NONE;
this.add(userJLabel, c);
c.weightx = 0;
c.gridx = 1;
c.gridy = 0;
c.fill = GridBagConstraints.NONE;
this.add(groupJLabel, c);
c.weightx = 0;
c.gridx = 2;
c.gridy = 0;
c.fill = GridBagConstraints.NONE;
this.add(serverJLabel, c);
//non rimuovere il carattere di spazio altrimenti la statusBar non viene visualizzata correttamente
//se l'utente diminuisce le dimensioni del JFrame dello studio
JLabel emptyLabel = new JLabel(" ");
//emptyLabel.setPreferredSize(new Dimension(30, 23));
emptyLabel.setBorder(loweredBevelBorder1);
c.weightx = 1;
c.gridx = 3;
c.gridy = 0;
c.fill = GridBagConstraints.HORIZONTAL;
this.add(emptyLabel, c);
c.weightx = 0;
c.gridx = 4;
c.gridy = 0;
c.fill = GridBagConstraints.NONE;
this.add(statusJLabel, c);
c.weightx = 0;
c.gridx = 5;
c.gridy = 0;
c.fill = GridBagConstraints.NONE;
this.add(versionJLabel, c);
}
public static void main (String[] args) {
JFrame frame = new JFrame("PROVA");
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(new JTextArea("bla bla bla"), BorderLayout.CENTER);
frame.getContentPane().add(new StatusBar(), BorderLayout.SOUTH);
frame.setSize(800, 600);
frame.setVisible(true);
}
}