Avatar billede xtr0 Nybegynder
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.
Avatar billede _carsten Nybegynder
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
Avatar billede _carsten Nybegynder
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;
}
Avatar billede xtr0 Nybegynder
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?
Avatar billede _carsten Nybegynder
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.*)
Avatar billede _carsten Nybegynder
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;
}
Avatar billede xtr0 Nybegynder
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();
       
    }
}
Avatar billede xtr0 Nybegynder
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? :)
Avatar billede _carsten Nybegynder
16. august 2006 - 10:14 #8
Kommer her
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester