15. august 2006 - 18:47
Der er
7 kommentarer og 1 løsning
Klasse interaktion
Hej! Jeg er begyndt at sætte mig selv ind i GUI udvikling i Java. Det er ret spændende, men jeg mangler en del teori. Jeg har min main-klasse UI.java som spawner en instans af mitlillelibrary.setPass som extender JPanel. Mit JPanel bliver så vist i UI.java. Mit problem er hvordan overfører jeg den string fra mit JPasswordField i setPass til UI.java? De arver jo ikke fra hinanden, og stringen skal kun sendes når min listener bliver kørt. Håber i forstår.
Annonceindlæg fra Infor
15. august 2006 - 19:57
#1
Du kan enten lave en get metode i setPass, eller tage en UI parameter med over i setPass Jeg ville nok gøre det sidste
15. august 2006 - 20:02
#2
Eksempel public class UI{ public UI(){ new setPass(this); } private String password; } setPass extends JPanel{ public setPass(UI ui){ this.ui = ui; } private void transferPassword(pWord){ ui.password = pWord; } private UI ui; }
15. august 2006 - 20:10
#3
Jeg mener at have prøvet noget lignende. Men kan setPass nå UI hvis setPass er i et library og UI bare bruger det library uden at være en del af det?
15. august 2006 - 20:43
#4
Ja - sagtens, det er hele ideen i det. Din setPass class bruger jo også JPanel uden at være en del af det library (javax.swing.*)
15. august 2006 - 20:53
#5
Og så har jeg faktisk lavet en mega bøf, sådan bør det se, med set og get metoder public class UI{ public UI(){ new setPass(this); } public void setPassword(String password){ this.password = password; } private String password; } setPass extends JPanel{ public setPass(UI ui){ this.ui = ui; } private void transferPassword(pWord){ ui.setPassword(pWord); } private UI ui; }
15. august 2006 - 21:50
#6
Hm.. Min editor giver fejl og kan ikke compile. Har du et forslag? import javaapplication1.add; import javaapplication1.setPass; import javax.swing.JPanel; public class UI extends javax.swing.JFrame { private String decryptPassword; public void setdecryptPassword(String inputPassword) { this.decryptPassword = inputPassword; } /** Creates new form UI */ public UI() { JPanel foo = new setPass(this); JPanel bar = new add(); //JPanel baz = new test(); initComponents(); tab.addTab("Sæt password",foo); //tab.addTab("Se koder",bar); tab.addTab("Tilføj kode",bar); } /* En masse GUI */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new UI().setVisible(true); } }); } } setPass.java package javaapplication1; public class setPass extends javax.swing.JPanel { public String pass; private UI ui; // Cannot find symbol 'UI' /** Creates new form setPass */ public setPass(UI ui) { // Cannot find symbol 'UI' initComponents(); } }
15. august 2006 - 22:01
#7
Rykkede den ud af pakken, så virkede det, det gav også mening. Tak for endnu et genialt svar, opretter du lige så du kan få props? :)
16. august 2006 - 10:14
#8
Kommer her
Kurser inden for grundlæggende programmering