10. juni 2005 - 08:41Der er
9 kommentarer og 1 løsning
Swing forsvinder
Jeg er blevet nødsaget til at bruge swing komponenter i min applikation da jeg skal bruge comboboxe og radioknapper som jeg ikke umiddelbart kan finde i AWT pakken. De nye komponenter er også mægtig pæne men jeg syndes de er meget ustabile.
Hvis man tabber ud af programmet og et andet vindue overlapper min applikation så forsvinder alle swing komponenterne og kommer først igen når man kører musen hen over dem.
Jeg kan forstå via en masse googling at de skal tegnes op igen i ny og næ ved hjælp af repaint(); mit problem er bare at jeg ikke ved hvordan jeg skal få den til at registrerer når programmet "aktivt" igen og derfor lige skal gentegne komponenterne.
Jeg har skiftet alle komponenterne ud, så det hele er swing. Jeg havde nemlig nogen probs med AWT og Swing i samme container... they don't mix :)
Jeg laver en container i constructoren af getContentPane fra en extended JFrame, hvor jeg smider alle komponenterne i.
Er der nogen der har en fix vej rundt om dette problem?
public class mainWindow extends JFrame{ Container c = new Container(); JRadioButton rbFoil = new JRadioButton("Foil"); JRadioButton rbBook = new JRadioButton("Book"); JRadioButton rbCustom = new JRadioButton("Custom"); ButtonGroup formatGroup = new ButtonGroup();
JButton Bquery = new JButton("Find job"); JButton BsqlUpdate = new JButton("Opdater DB"); JTextField tfFileName = new JTextField(); JTextArea taFileResult = new JTextArea(); JLabel lblFileName = new JLabel("Filnavn:"); JLabel lblFormat = new JLabel("Format:");
public void paint(Graphics g){ lblFileName.setBounds( new Rectangle(10,10,50,18)); tfFileName.setBounds( new Rectangle(60,10,100,18)); Bquery.setBounds( new Rectangle(170,10,80,18)); BsqlUpdate.setBounds( new Rectangle(380,420,100,18)); taFileResult.setBounds( new Rectangle(10,40,250,400)); lblFormat.setBounds( new Rectangle(270,40,60,18)); rbFoil.setBounds( new Rectangle(270,60,60,18)); rbBook.setBounds( new Rectangle(270,80,60,18)); rbCustom.setBounds( new Rectangle(270,100,80,18)); }
mainWindow(){ c = getContentPane(); c.add(Bquery); c.add(BsqlUpdate); c.add(lblFileName); c.add(tfFileName); c.add(taFileResult);
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.