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); } }

Rispondi quotando