I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Jeg tror nok fejlen findes der hvor Log sender variablerne name og kodeOrd tilbage til Director, men kan ikke lige finde præcist hvor.
Takker for hjælp
import java.util.*; import dk.au.imv.jabber.*; public class Director implements IJabber { public Log nyLog; public JabberServer js; public JID you, me; //public Vector friends; public boolean res1, res2; public int i; public Gui nyGui;
public Director(/*Log temp, Gui temp2*/) { //nyLog = temp; //nyGui = temp2; JabberServer js = new JabberServer(this); JID me = new JID(); JID you = new JID(); i = 0; new Log(this); new Gui(this); //Vector friends = new Vector(); } public void tilslut(String name, String kodeOrd){ me.setUsername(name); me.setServer("ishtar.imv.au.dk"); me.setPassword(kodeOrd); System.out.println("JID: " + me); System.out.println(me); js.attachUser(me); js.setStatus("available"); boolean res1 = js.createNewAccount(); boolean res2 = js.logOn(); js.setStatus("onLine for vildt"); js.presenceSubscribe(you); js.getRoster(); if (res2) System.out.println("Logon succeded"); js.setStatus("onLine for vildt"); //opret(); nyGui.visgui(); }
/*while (friends != null({ System.out.println(*/ public void msgReceived(String from, String subject, String body) { //System.out.println("RECI:" + body); } public void rosterChange(Vector v) { System.out.println("VECTOR:" + v); /*while (i < ){ System.out.println(x) i++(); }*/ } public void connectionClosed() { //System.out.println("conn closed"); } public void opret(){ // temp2.visgui();
} public void tilf(String venavn){ //nyGui.hentVenavn(); you.setUsername(venavn); you.setServer("ishtar.imv.au.dk"); js.presenceSubscribe(you); } public static void main(String[] args) { new Director(); }
}
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class Log implements ActionListener {
private JFrame logfr; private JButton loginbt, cancelbt; private JTextField logtxt; private JTextField pswtxt; private JLabel pass, login; public String name; public String kodeOrd; public Director ref;
public Log(Director r) { ref = r; pass = new JLabel(); login = new JLabel(); logfr = new JFrame(); loginbt = new JButton(); cancelbt = new JButton(); logtxt = new JTextField(); pswtxt = new JTextField(); loginbt.setText("Log in"); cancelbt.setText("Cancel"); login.setText("Login name"); pass.setText("Password"); loginbt.addActionListener(this); cancelbt.addActionListener(this); loginbt.setBounds(20,80,70,30); cancelbt.setBounds(100,80,70,30); logfr.setBounds(400,300,200,150); logtxt.setBounds(100,20,80,15); pswtxt.setBounds(100,40,80,15); pass.setBounds(20,40,80,15); login.setBounds(20,20,80,15); Font newFont = new Font( "Haetenschweiler", Font.PLAIN, 10 ); loginbt.setFont(newFont); cancelbt.setFont(newFont); logfr.getContentPane().add(pass); logfr.getContentPane().add(login); logfr.getContentPane().add(loginbt); logfr.getContentPane().add(cancelbt); logfr.getContentPane().setLayout(null); logfr.getContentPane().add(pswtxt); logfr.getContentPane().add(logtxt); logfr.show(); logfr.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void hentNavn(){ name = logtxt.getText(); } public void hentKode(){ kodeOrd = pswtxt.getText(); } public void actionPerformed (ActionEvent e) { if (e.getSource() == loginbt){ hentNavn(); hentKode(); ref.tilslut(name, kodeOrd);
private JFrame frame; private JButton statusButton, brugerButton; private JTextField nyven; public Log nyLog2; public boolean farve; public String venavn; public Director reff;
public Gui(Director r){ //super(temp); reff = r; frame = new JFrame(); statusButton = new JButton(); brugerButton = new JButton(); nyven = new JTextField(); //dir = new Director(); farve = true; statusButton.setText("LineStatus"/*nyLog2.name*/); brugerButton.setText("Tilføj Bruger"); statusButton.addActionListener(this); brugerButton.addActionListener(this); statusButton.setBackground(Color.green); statusButton.setBounds(120,10,100,50); brugerButton.setBounds(600,10,100,50); frame.setBounds(0,0,800,600); nyven.setBounds(600,80,100,20); frame.getContentPane().add(statusButton); frame.getContentPane().add(brugerButton); frame.getContentPane().add(nyven); frame.getContentPane().setLayout(null); //frame.show(); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void hentVenavn(){ venavn = nyven.getText(); } public void visgui(){ frame.show(); } public void actionPerformed (ActionEvent e) { if (e.getSource() == statusButton){ if(farve == true){ statusButton.setBackground(Color.green); } else if(farve == false){ statusButton.setBackground(Color.red); } if(farve == false){ farve = true; } else if(farve == true){ farve = false; }
} if (e.getSource() == brugerButton){ hentVenavn(); reff.tilf(venavn);
Den va såmænd ikke så svær :-)) det er i forenden af din klasse Director
public class Director implements IJabber { public Log nyLog; public JabberServer js; public JID you, me; // you og me er public og bruges mange steder public boolean res1, res2; public int i; public Gui nyGui;
public Director( ) { JabberServer js = new JabberServer(this); JID me = new JID(); // her erklares you og me som lokale variablle i JID you = new JID(); // constructormetoden samtidig med at de intieres i = 0; new Log(this); new Gui(this); } // Så klassens you and me blev slet ikke initieret.
når du skriver tupenavnet JID foran betyder det at variablen skal defineres Der, dvs indeni din construtor funktion som en lokal variable der forsvinder igen det øjeblik funktionen returnerer.
de to variabler der defineres i linien: public JID you, me; // you og me er public og bruges mange steder bliver aldrig initieret.
nu ser min Director således ud, men der er ingen berding!
public class Director implements IJabber { public Log nyLog; public JabberServer js; public JID you, me; //public Vector friends; public boolean res1, res2; public int i; public Gui nyGui;
public Director(/*Log temp, Gui temp2*/) { //nyLog = temp; //nyGui = temp2; JabberServer js = new JabberServer(this); me = new JID(); you = new JID(); i = 0; nyLog = new Log(this); nyGui = new Gui(this);
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.