Przekazywanie zmiennych pomiędzy klasami

Odpowiedz Nowy wątek
2014-08-14 09:09
0

Witam.

Przygotowuję prosty program do łączenia z bazą danych. Aktualnie posiadam dwie klasy:

  1. Interface
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JProgressBar;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTextArea;

public class Interface extends JFrame {

    private JPanel contentPane;
    private JTextField textField;
    private JTextField textField_1;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Interface frame = new Interface();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Interface() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 615, 300);
        setTitle("DefectLoader");
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel lblNewLabel = new JLabel("Login");
        lblNewLabel.setBounds(10, 8, 65, 14);
        contentPane.add(lblNewLabel);

        JLabel lblNewLabel_1 = new JLabel("Password");
        lblNewLabel_1.setBounds(10, 40, 65, 14);
        contentPane.add(lblNewLabel_1);

        textField = new JTextField();
        textField.setBounds(80, 5, 100, 20);
        contentPane.add(textField);
        textField.setColumns(10);

        textField_1 = new JTextField();
        textField_1.setBounds(80, 35, 100, 20);
        contentPane.add(textField_1);
        textField_1.setColumns(10);

        JButton btnNewButton = new JButton("Connect");
        btnNewButton.setBounds(10, 85, 170, 23);
        contentPane.add(btnNewButton);
    }
}
  1. Connect
public class Connect { 
 public static void method_connect() { 
System.out.println("Connected to database!"); 
 }
}

Chcę, żeby po naciśnięciu przycisku uruchamiała się klasa Connect, do której przekazane zostaną zmienne login i password z klasy Interface. Nie wiem tylko jak mam przekazać zmienne.

Pozostało 580 znaków

2014-08-14 09:34
0
  1. nazewnictwo metod, ale to dorbnostka.
  2. Metoda może przyjmowac parametry:
    public void connect(String username, String password){
    //...
    }

Pozostało 580 znaków

2014-08-14 09:45
0

@Koziołek

Czyli rozwiązaniem jest stworzenie metody w klasie Interface, która będzie posiadała parametry login i password, a następnie uruchomienie jej w Connect?

Pozostało 580 znaków

2014-08-14 10:36

Nie. Trowrzysz ją w klasie Connect. Następnie w Interface (NAZEWNICTWO!!!!!!!) tworzysz obiekt klasy Connect i wywołujesz metodę przekazujac do nie j odpwoednie parametry.

Pozostało 580 znaków

2014-08-14 11:02
0

@Koziołek

Próbuję stworzyć metodę, ale Eclips ciągle wskazuje błędy.

Kod klasy Connect

public class Connect { 
 public static void method_connect() { 
System.out.println("Connected to database!"); 

public void getConnection(String username, String password)
{

}
 }
}

Stworzony w klasie Interface obiekt również wykazuje błedy.

edytowany 1x, ostatnio: adam.cziker, 2014-08-14 11:04

Pozostało 580 znaków

2014-08-14 11:04
1
 class Connect {
    public static void method_connect() {
        System.out.println("Connected to database!");
    }
    public void getConnection(String username, String password)
    {

    }
}

nieprawidlowo zamknięte nawiasy. Poza tym jeżeli klasa jest publiczna to musi być w osobnym pliku.

Obie klasy (Interface i Connect) są w osobnych plikach ;) Connect poprawione, okoduję teraz obiekt w klasie Interface. - adam.cziker 2014-08-14 11:12

Pozostało 580 znaków

2014-08-14 11:27
0

@Koziołek

Obiekt klasy Connect ma być stworzony w obrębie klasy Interface, tak?

public Interface() {
Connect obiect = new Connect();
}

Edit
Nie mogę przekazać zmiennych z jednej klasy do drugiej, problemem jest ActionListener. Błąd:

Syntax error on token "implements", throws expected

edytowany 2x, ostatnio: adam.cziker, 2014-08-14 13:11

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0