23. maj 2002 - 10:56Der er
8 kommentarer og 1 løsning
JOptionPane placering...
Hej eksperter;
Jeg har en Jframe med én knap på. Et klik på knappen vil få en ButtonHandler klasse til at vise en JOptionPane. Problemet er at JOptionPanen bliver vist midt på skærmen og IKKE midt i min JFrame.
Jeg ved at den 1. paramter på en JOptionPane er PARENT COMPONENT svarende til min JFrame. Hvis jeg laver en JOptionPane i JFramen virker det også fint når jeg angiver this.
Problemet er bare at jeg ikke kan kalde min JFrame fra min buttonhandler-klasse da den ikke har adgang til den. Er der en nem måde at få JOptionPanen til at vises midt i JFramen uden at fuske uden om min Buttonbhandler klasse...???
Under alle omstændigheder har du brug for en reference til din jframe, enten for at bruge den i option-pane metoden, eller til at få placeringen af framen. Hvorfor gør du ikke din buttonhandler class til en inner class af jframe? Alternativt kan du få fat i dit frame via SwingUtilities.getRoot(component).
SwingUtilities.getRoot(component) skal have en parameter nemlig COMPONENT, altså navnet på barnet, for at få forældren. Hvad skal jeg angive ??? det er en ButtonHandler, der er altså ikke tale om en component ??
kig lige på min kode igen... e.getSource() returnerer et object som jeg med min kode caster til en jbutton. Bedre er dog at caste til component (mere generelt).
du skal ikke bruge din knap som argument til joptionpane... du skal bruge framen, som du får via SwingUtilities.getRoot(knap) ... isåfald skulle den gerne blive centreret i framen.
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.