2010-10-30 17 views
5

ho hava un programma Java con un JFramesetMaximumSize non funziona in java

Sto usando il posizionamento assoluto

ecco la mia funzione principale

public static void main(String[] args) { 
    ape Ape = new ape(); 
    Ape.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    Ape.setSize(1000,1000); 
    Ape.setMinimumSize(new Dimension(1000,1000)); 
    Ape.setMaximumSize(new Dimension(1000,1000)); 
    Ape.setVisible(true); 
} 

Quando eseguo il programma cerco di ridimensionare esso e rende la finestra più piccola ma non posso

quando provo a rendere la finestra più grande funziona bene Salto di base la funzione setMaximumSize()

Ho letto in giro e questo è successo prima che

è un bug noto?

se così ho sentito ho potuto fare un ascoltatore dalla finestra, quando l'ho provato ho implementato le funzioni che WindowListener necessario, ma non ho trovato nulla per risolvere il mio problema

riprova da soli e vedere cosa succede ...

grazie in anticipo

PS ... per favore non ridere i nomi io do le mie lezioni ... :)

risposta

10

vedere http://forums.sun.com/thread.jspa?threadID=5342801:

.210

E 'un bug noto:

Forse si potrebbe usare

Ape.setResizable(false) 

invece?

PS: È una convenzione per dare nomi di classi che iniziano con una lettera maiuscola e le variabili con una piccola lettera, non viceversa.

+0

grazie per la relazione e l'Ape.setResizable è fondamentalmente quello che volevo grazie –

+0

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6464548 – Sudhakar

1

Nel mio caso ho usato il seguente e ha funzionato:

Dimension newDim = new Dimension(width, height); 

    label.setMinimumSize(newDim); 
    label.setPreferredSize(newDim); 
    label.setMaximumSize(newDim); 
    label.setSize(newDim); 
    label.revalidate(); 
+0

Non so come dire grazie a te .. grazie grazie mille. Mi hai salvato la faccia e il giorno. riconvalida è la chiave. –

0

ho risolto in questo modo:

frame.setBounds(0, 0, 1480, 910); 
    frame.setMinimumSize(new Dimension(1200, 799)); 
    frame.setMaximumSize(new Dimension(1480, 910)); 
    frame.setPreferredSize(new Dimension(1480, 910)); 
    frame.setLocationRelativeTo(null); 
    frame.addComponentListener(new ComponentAdapter() { 

     @Override 
     public void componentResized(ComponentEvent e) { 
      double w = frame.getSize().getWidth(); 
      double h = frame.getSize().getHeight(); 
      if(w > 1480.0 && h > 910.0){ 
       frame.setSize(new Dimension(1480, 910)); 
       frame.repaint(); 
       frame.revalidate(); 
      } 

      super.componentResized(e); 
     } 

    });