Det virker kun hvis man hiver i vinduet. SÅ bliver labelen synlig (som om den repainter eller sådan noget). Men hvis man blot lader vinduet være idet det åbnes så kan man stadig ikke se labelen!
/* * Test.java * * Created on 26. maj 2004, 10:59 */
/** * * @author Administrator */ public class Test extends javax.swing.JFrame {
/** Creates new form Test */ public Test() { initComponents(); EvaluationDialog d = new EvaluationDialog(); d.setSize(800, 600); d.setVisible(true); }
/** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {
> snoop_one Nu er det mere end et halvt år siden spørgsmålet blev stillet og det er vel næppe aktuelt mere, men hvad er det lige du mener dit eksempel gør i f.h.t mit - pack() løser jo intet i f.h.t problemet.
hehe nej pack() løse ikke problemet... men forebygger mod fremtidige problemer. Bare fordi man kun er bevidst om ét problem betyder det ikke, at man ikke har flere ;0)
Betyder det at pack er lig en livslang penecillinkur ???
Mig bekendt er den eneste forskel på pack og setVisible at pack beregner preferredSize, samt komponenter klargøres så de kan blive synlige hvorefter layoutet valideres.
For mig at se der kun et problem, nemlig at alphaleader adder et JPanel getContentPane().add(panel1); hvor der måske tilføjes flere komponenter, eller der defineres en størrelse som rækker ud over den label og så vil labellen ikke være synlig, den del af koden har alphaleader MÅSKE klippet ud for overskuelighedens skyld, hvilket vi jo ikke kan se.
Fakta er at begge vore eksempler virker, hvilket de også gerne skulle gøre.
Jo det er rigtigt, men det er ikke en lille forskel. Der er mange studerende der glemmer pack() og kan ikke rigtig forstå hvorfor deres gui ikke er som de gerne vil have den til at være (selvom de har kaldt setVisible) - én god regl er at kalde pack efter alle ens componenter er added til ens vindue.
Jeg kan dog spotte nogle flere problemer, men det er nok mere personligt programmerings stil... (f.eks. ville jeg ikke sætte null som layoutmanager eller sætte en label til at være setVisible(true) inden setVisible(false) er kaldt - bare for at nævne nogle få stykker..)
Men jo de virker begge, og måske har alphaleader også fået det til at virke ;0)
1. Det skyldes manglende forståelse for de forskellige LayoutManager
2. Det er ikke nødvendigvis en forglemmelse at undlade et kald til pack()
3. Det er grundløst at kalde setVisible(true) eller setVisible(false) på en label, medmindre den skal være usynlig.
4. Hvis man vil bruge setBounds() til at positionere sine komponenter, SKAL LayoutManageren sættes til null.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.