10. maj 2003 - 12:57Der er
10 kommentarer og 1 løsning
Hjælp til hjemmelavet JDialog-boks!
Jeg er ved at lave min egen JDialog-boks som skal modtage en ArrayList med parameter. Ud fra dialog-boksen kan man vælge via en liste, kun ét af objekterne fra ArryListen. Dette objekt skal så retuneres tilbage til den metode der kaldte dialogboksen... Problemet er jeg ikke ved hvordan man får dialog-boksen til at sende det valgte objekt tilbage til den metode der kaldte dialog-boksen. Den metode der kalder dialog-boksen skal jo vente på der bliver valgt noget (altså retuneres) i dialog-boksen før den kan fortsætte... Håber i kan forstå mit problem ;-)
public SoegKundeGUI() { this.setTitle("Søgeresultat"); this.setModal(true);
soegPanel = new JPanel(); SoegGUILayout soegGUILayout = new SoegGUILayout(); soegPanel.setLayout(soegGUILayout);
listModel = new DefaultListModel(); resultatList = new JList(listModel); resultatList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); sp_resultatList = new JScrollPane(resultatList); soegPanel.add(sp_resultatList);
hentButton = new JButton("Hent"); hentButton.addActionListener(this); soegPanel.add(hentButton);
annullerButton = new JButton("Annullér"); annullerButton.addActionListener(this); soegPanel.add(annullerButton);
Takker for svaret... Men er det ikke muligt at løse det i stil med nedenstående dialog-boks, hvor den valgte værdi retuneres af kaldet?
int c = JOptionPane.showConfirmDialog(null, "Vælg 'yes', 'no' eller 'cancel'?"); if(c == 0) //der blev trykket 'yes' if(c == 1) //der blev trykket 'no' osv.
Så vidt jeg ved er JDialog ikke modal, mens JOptionPane er, så jeg tror du er nødt til at nedarve fra JOptionPane for at få den til at vente til du har svaret i dialogboksen... men hæng mig ikke op på det :)
Og så kalde this.show i stedet for this.setVisible... show siger: If the dialog is modal and is not already visible, this call will not return until the dialog is hidden by calling hide or dispose. It is permissible to show modal dialogs from the event dispatching thread because the toolkit will ensure that another event pump runs while the one which invoked this method is blocked.
Jeg har haft kigget på den tutorial... men det ku' være jeg skulle gøre det igen så ;)
BTW: Jeg har erfaret at når modal er sat til true skal dialog-boksen være "afviklet" før man kan vende tilbage til oprindelige GUI. Men hvad betyder/gør modal helt præcist?
Efter at have gennemlæst tutorial'en, er jeg kommet frem til nedenstående Dialog-boks som tildels kan løse mit problem. Men den bruger desværre en dropdownmenu hvor jeg bruger en liste :(
Er det ikke på nogen måde muligt at lave sin egen dialog-boks som man kan kalde ligesom nedenstående???
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.