tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1370
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Orbit
    Orbit Orbit ist offline Mitglied Gold
    Registriert seit
    Aug 2007
    Beiträge
    175
    Hallo,
    Hab da nen Fenster, keine Feste Größe mit BoxLayout. Da will ich untereinander ne menge
    Sachen anordnen, zB. JCheckBoxen, die nen text "aktivieren" (von grau auf schwarz färben) und dem Benutzer nen JTextField freigeben.

    Sache ist:
    Immer wenn ich auf ne JCheckBox klicke, geht durch alle Komponenten ein Ruck, irgendwas muss für ganz kurze zeit seine Größe ändern.
    Das lustige ist, dass das nicht nur die Komponenten unter der CheckBox betrifft, sondern alle...

    Hat wer nen plan wie man das wegkriegt, ohne die Fenstergröße festzulegen und das null-layout zu verwenden?
    Die Komponentren haben in sich auch versch. Größen, sprich mit GridLayout kommt man auch nicht voran.
    mfg,
    Orbit
     

  2. #2
    TheJadix TheJadix ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Bremerhaven
    Beiträge
    220
    Hi,

    wenn du wirklich nur Text umfärbst und ein TextField enablest,
    dürfte das eigentlich so nicht auftretten !

    Hast mal ein bischen Code ? So GUI_Aufbau und ActionListener ! ?

    Gruß JAdix
     
    Signatur ? ? ? So ein Humbug ! ! !

  3. #3
    Avatar von Orbit
    Orbit Orbit ist offline Mitglied Gold
    Registriert seit
    Aug 2007
    Beiträge
    175
    Hallo,

    Hier ein paar Codeschnipsel...

    HTML-Code:
    this.getContentPane().setLayout(new BoxLayout(this.getContentPane(),BoxLayout.Y_AXIS));
    (Die Klasse erbt von JFrame)
    min_dist_cb ist eine JCheckBox
    meter_min_dist ,min_dist_text_1. JLabels
    MIN_DIST_TEXTFIELD ein JTextField
    Das ganze kommt dreimal mit versch. Komponenten vor.

    Code :
    1
    2
    3
    4
    5
    6
    7
    
            JPanel inlay_min_dist = new JPanel(null);
            inlay_min_dist.add(MIN_DIST_TEXTFIELD);
            
            meter_min_dist = new JLabel("m");
            meter_min_dist.setBounds(240,0,30,20);
            inlay_min_dist.add(meter_min_dist);
            add(inlay_min_dist);
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
            min_dist_cb.addItemListener(new ItemListener(){
                public void itemStateChanged(ItemEvent e){
                    if(min_dist_cb.isSelected()){
                        MIN_DIST_TEXTFIELD.setEnabled(true);
                        meter_min_dist.setForeground(Color.black);
                        min_dist_text_1.setForeground(Color.black);
                    } else {
                        MIN_DIST_TEXTFIELD.setEnabled(false);
                        min_dist_text_1.setForeground(Color.lightGray);
                        meter_min_dist.setForeground(Color.lightGray);
                    }
                }
            });
     

  4. #4
    TheJadix TheJadix ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Bremerhaven
    Beiträge
    220
    Hi,

    führst du vor/nach dem öffnen des Frames ein pack() aus ?

    Tritt das ganze auch auf wenn du die setBounds() für die JLabels weg lässt ?

    Gruß JAdix
     
    Signatur ? ? ? So ein Humbug ! ! !

  5. #5
    Avatar von Orbit
    Orbit Orbit ist offline Mitglied Gold
    Registriert seit
    Aug 2007
    Beiträge
    175
    Ein pack() ist leider nicht möglich, da die JLabels Texte in htaml Darstellung hjaben, die von selber umbrechen. Bei einem pack() würden diese JLabels sich auf eine Zeile beschrenken müssen.

    Die setBounds() müssen da sein, da es sich bei diesen Komponenten um feste Komponenten handelt, die auf einem eigenen JPanel sitzen, das auf nulllayout geschaltet ist..
    oder sehe ich das falsch?
     

  6. #6
    TheJadix TheJadix ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Bremerhaven
    Beiträge
    220
    Ups,

    das mit dem null-Layout hab ich glatt überlesen ! Kann ja mal vorkommen !

    Wenn du mal nur das Textfield-En/Disablest oder nur die Farbänderung machst,
    tritt der fehler dann in einem Fall nicht auf ?

    Im moment würde ich auf das TextField tippen auch wenns nicht sein dürfte ...
    Weil schwarz ist ja nicht dicker als grau ! Kicher

    Gruß JAdix
     
    Signatur ? ? ? So ein Humbug ! ! !

  7. #7
    Avatar von Orbit
    Orbit Orbit ist offline Mitglied Gold
    Registriert seit
    Aug 2007
    Beiträge
    175
    Hallo,
    liegt tatsächlich am Text. Und zwar an einem, der mit html seine zeilenumbrüche selbst verwaltet. Kann das daran liegen?
    Gibts ne andere Möglichkeit nen JLabel dazuzubringen, den Text eigenständig umzubrechen als html?
    mfg,
    Orbit
     

Ähnliche Themen

  1. JTextField und JButton in BoxLayout auf eine Linie ausrichten
    Von Marotti32 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 11.04.07, 07:08
  2. Antworten: 9
    Letzter Beitrag: 06.12.06, 13:51
  3. Antworten: 4
    Letzter Beitrag: 22.03.06, 20:50
  4. Dringende Layoutfrage BoxLayout
    Von a400 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 01.04.05, 15:50
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29