Dziedziczenie Java Swing

Dziedziczenie Java Swing
S5
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:58
0

Potrzebuje pomocy ,gdyż tworzę aplikacje połączoną z bazą danych i nie wiem jak przekazać dane z sql , klasa login do klasy login1. ( Dane z sql w klasie login działają)

Kod kalsy login 1. Chodzi o to ,że nie wiem jak mogę napisać ,że dziedziczy po JFrame i klasie login.

Kopiuj
package login1;

import java.awt.BorderLayout;
import java.sql.*;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import javafx.embed.swing.JFXPanel;

import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Color;
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import java.awt.Font;
import java.awt.Color;
import mysql.login;

public class login1 extends JFrame {

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

	/**
	 * Create the frame.
	 */
	public login1() {
		setSize(500,500);
		setTitle("Centus");
		getContentPane().setLayout(null);
		
		
		JLabel lblsaldo = new JLabel("SALDO:");
		lblsaldo.setFont(new Font("Tahoma", Font.BOLD, 20));
		lblsaldo.setBounds(93, 366, 92, 30);
		getContentPane().add(lblsaldo);
		
		JLabel lblsuma = new JLabel("");
		lblsuma.setForeground(new Color(0, 204, 51));
		lblsuma.setFont(new Font("Tahoma", Font.PLAIN, 20));
		lblsuma.setBounds(195, 366, 102, 30);
		getContentPane().add(lblsuma);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
	}
}


AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 2 miesiące
  • Postów:3561
0

W jakim celu to dziedziczenie?
Powszechnie w materiałach dla początkujących przykłada się zbyt duża wagę do dziedziczenia.

W wielu przypadkach (Twojego celu nie rozumiem) właściwym jest wskazać kompozycję.

Uwagi szczegółowe:

  • piszesz o SQL, ale nic n/t nie ma w kodzie.
  • nazwy klas zaczynamy od wielkiej litery

Bo C to najlepszy język, każdy uczeń ci to powie
JS
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:3
0

W Javie nie możesz dziedziczyć więcej niż jednej klasy, tak więc możesz użyć na przykład kompozycji

S5
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:58
0

już tłumaczę , w klasie login mam połączenie z sql , użytkownik loguje się tam. Jeśli wpisze poprawny login i hasło przenosi się do nowego okna (klasa login1) . Chciałbym aby dane wprowadzone przez użytkownika to jest ,,login'' znajdował się w nowym oknie i można było pobrać jego dane i wyświetlić je

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

I gdzie to wymaga jakiegoś dziedziczenia? o_O Tworzysz obiekt klasy Login i używasz go w tym swoim okienku Login1. Czy jak potrzebujesz gdzieś mieć inta to dziedziczysz po Integer czy może jednak tworzysz sobie zmienną takiego typu?


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
S9
Klasa Integer jest final, nie można po niej dziedziczyć ;]
Shalom
plażo, proszę hold my beer:P
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 2 miesiące
  • Postów:3561
0

Czytam w nocy ten wątek - pominę, że wszyscy nim się bardziej interesujemy niż OP - i zaczynam rozumieć to tak:
Kol @sssebastianb5 na starcie projektu w klasie login (której nie znamy) umieścił trochę DANYCH. I teraz tego żałuje ;) .... jeszcze nie wie, że żałuje, bo nie ma oglądu jak ktoś z doświadczeniem.

Trzeba założyć klasę np Konfiguracja, w niej to powinno siedzieć. Obiekt tej klasy tworzyć dość wcześnie, nawet w Main(), i przekazywać referencję do kolejnych klas "zainteresowanych".
Ewentualnie w/w klasę przezwać Sesja, tam trzymać potwierdzoną przy loginie ksywkę, i co tam tzreba jeszcze wynikającego z logowania.

Dodam, ze coś za dużo tych klas LoginXxxx. Formatka do logowania powinna się nazywać LoginFrame, albo LoginWindow.
Klasa "login1" sądząc po zarysie zawartości, nie ma nic wspólnego z logowanie, powinna mieć lepszą nazwę.

@sssebastianb Nazwy są ważne, one kierują sposobem myślenia o jakiś bytach. Jak na ziemniaka powiesz "jabłko", to w jaki sposób będziesz o nim myśleć?


Bo C to najlepszy język, każdy uczeń ci to powie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.