Java SWING a błąd "AWT-EventQueue-0" java.lang.NullPointerException

0

Witam Wszystkich!
Próbuję kilku rzeczy, jak je używać itd. i nastąpiłem na błąd który nie mogę w żaden sposób uniknąć. Nie wiem do końca w czym jest błąd, co może być zle napisane. Nie zwróciłem uwagi na nazwy zmiennych i tym podobne, ponieważ chodzi o same "testy". Sprawa ma (powinna wyglądać) tak, że po wyjściu z panelu panelu login znika on a pojawia się inny, próbowałem na różne sposoby ale zawsze mam taki błąd:


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Okno.UIWindow.wyjdzZLoginDalej(UIWindow.java:401)
	at Okno.UIWindow$3.actionPerformed(UIWindow.java:152)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)


a tutaj kod


package Okno;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import net.miginfocom.swing.MigLayout;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormSpecs;
import com.jgoodies.forms.layout.RowSpec;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Text;

import Logika.Logika1;
import javafx.scene.control.Slider;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.awt.Font;
import java.awt.Image;

import javax.swing.JProgressBar;
import javax.swing.JList;
import javax.swing.JSlider;
import javax.swing.JButton;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

import java.awt.Color;
import javax.swing.border.BevelBorder;
import java.awt.Cursor;
import java.awt.Rectangle;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.JPasswordField;
import java.awt.Label;
import javax.swing.border.LineBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.JPopupMenu;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Scanner;
import java.awt.Dimension;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class UIWindow {

	private JFrame frame;
	private JTextField fieldPodajBrutto;
	private JTextField fieldZUS;
	private JTextField fieldSKARBOWKA;
	private JTextField fieldNETTO;
	private JPasswordField passwordField;
	private JTextField textLoginSpace;
	private JSlider slider;
	private JLabel lblOdpSlider;
	private JLabel lblFailLogin;
	private JPanel panelLogin;
	private JPanel panelBruttoNettoPodatki;

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

	/**
	 * Create the application.
	 */
	public UIWindow() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */

	private void initialize() {
		frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		frame.setBounds(100, 100, 450, 316);
		frame.getContentPane().setLayout(new CardLayout(0, 0));
		frame.setExtendedState(JFrame.MAXIMIZED_HORIZ);
		frame.setVisible(true);
		frame.setResizable(false);

		JPanel panelLogin = new JPanel();
		panelLogin.setVisible(true);
		panelLogin.setBackground(new Color(255, 255, 255));
		frame.getContentPane().add(panelLogin, "name_196173800546301");
		panelLogin.setLayout(null);

		passwordField = new JPasswordField();
		passwordField.setBounds(265, 212, 99, 27);
		panelLogin.add(passwordField);

		textLoginSpace = new JTextField();
		textLoginSpace.setBounds(92, 212, 99, 27);
		panelLogin.add(textLoginSpace);
		textLoginSpace.setColumns(10);

		JLabel lblZalogujSi = new JLabel("ZALOGUJ");
		lblZalogujSi.setFont(new Font("Papyrus", Font.PLAIN, 16));
		lblZalogujSi.setForeground(Color.WHITE);
		lblZalogujSi.setBounds(183, 149, 105, 37);
		panelLogin.add(lblZalogujSi);

		JLabel lblFailLogin = new JLabel("");
		lblFailLogin.setFont(new Font("Papyrus", Font.BOLD | Font.ITALIC, 18));
		lblFailLogin.setForeground(new Color(153, 0, 0));
		lblFailLogin.setBounds(95, 28, 282, 107);
		panelLogin.add(lblFailLogin);

		JButton btnRedLog = new JButton("");
		btnRedLog.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		btnRedLog.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		btnRedLog.setBorder(new SoftBevelBorder(BevelBorder.RAISED, Color.DARK_GRAY, Color.DARK_GRAY, Color.LIGHT_GRAY,
				Color.LIGHT_GRAY));
		btnRedLog.setIcon(new ImageIcon(
				));
		btnRedLog.setBounds(364, 185, 40, 81);
		panelLogin.add(btnRedLog);

		JButton btnBluLog = new JButton("");
		btnBluLog.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				wyjdzZLoginDalej();
				
			}
		});
		btnBluLog.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		btnBluLog.setAlignmentX(0.5f);
		btnBluLog.setAlignmentY(0.0f);
		btnBluLog.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, new Color(64, 64, 64), new Color(64, 64, 64),
				Color.DARK_GRAY, new Color(192, 192, 192)));
		btnBluLog.setIcon(new ImageIcon(
				));
		btnBluLog.setBounds(404, 185, 40, 81);
		panelLogin.add(btnBluLog);

		JLabel lblBackground = new JLabel("");
		lblBackground.setIcon(new ImageIcon(
				lblBackground.setBounds(0, 0, 444, 266);
		panelLogin.add(lblBackground);

		JPanel panelBruttoNettoPodatki = new JPanel();
		panelBruttoNettoPodatki.setVisible(false);
		panelBruttoNettoPodatki.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
		frame.getContentPane().add(panelBruttoNettoPodatki, "name_411413147098636");

		JLabel lblNewLabel = new JLabel("Podaj kwote brutto");
		lblNewLabel.setFont(new Font("Papyrus", Font.PLAIN, 15));
		lblNewLabel.setBounds(29, 23, 132, 23);

		fieldPodajBrutto = new JTextField();
		fieldPodajBrutto.setBounds(29, 50, 132, 39);
		fieldPodajBrutto.setColumns(10);
		panelBruttoNettoPodatki.setLayout(null);
		panelBruttoNettoPodatki.add(lblNewLabel);
		panelBruttoNettoPodatki.add(fieldPodajBrutto);

		JLabel lblZus = new JLabel("ZUS");
		lblZus.setFont(new Font("Papyrus", Font.PLAIN, 15));
		lblZus.setBounds(212, 66, 61, 23);
		panelBruttoNettoPodatki.add(lblZus);

		JLabel lblSkarbowka = new JLabel("SKARBOWKA");
		lblSkarbowka.setFont(new Font("Papyrus", Font.PLAIN, 15));
		lblSkarbowka.setBounds(184, 129, 132, 23);
		panelBruttoNettoPodatki.add(lblSkarbowka);

		JLabel lblNetto = new JLabel("NETTO");
		lblNetto.setFont(new Font("Papyrus", Font.PLAIN, 15));
		lblNetto.setBounds(206, 190, 85, 23);
		panelBruttoNettoPodatki.add(lblNetto);

		fieldZUS = new JTextField();
		fieldZUS.setBounds(326, 61, 98, 33);
		panelBruttoNettoPodatki.add(fieldZUS);
		fieldZUS.setColumns(10);

		fieldSKARBOWKA = new JTextField();
		fieldSKARBOWKA.setColumns(10);
		fieldSKARBOWKA.setBounds(326, 124, 98, 33);
		panelBruttoNettoPodatki.add(fieldSKARBOWKA);

		fieldNETTO = new JTextField();
		fieldNETTO.setColumns(10);
		fieldNETTO.setBounds(326, 185, 98, 33);
		panelBruttoNettoPodatki.add(fieldNETTO);

		JSlider slider = new JSlider();
		slider.setPaintTrack(false);
		slider.setForeground(new Color(255, 255, 255));
		slider.setMajorTickSpacing(1);
		slider.setPaintTicks(true);
		slider.setMinimum(-2);
		slider.setValue(0);
		slider.setBackground(new Color(30, 144, 255));
		slider.setName("");
		slider.setFont(new Font("Papyrus", Font.PLAIN, 13));
		slider.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		slider.setToolTipText("");
		slider.setMaximum(2);
		slider.setBounds(0, 174, 202, 44);
		panelBruttoNettoPodatki.add(slider);

		JLabel lblCoDalej = new JLabel("Co dalej?");
		lblCoDalej.setFont(new Font("Papyrus", Font.PLAIN, 15));
		lblCoDalej.setBounds(41, 146, 75, 23);
		panelBruttoNettoPodatki.add(lblCoDalej);

		JButton btnPolicz = new JButton("Policz!");
		btnPolicz.setBounds(46, 100, 89, 23);
		panelBruttoNettoPodatki.add(btnPolicz);

		JButton btnPrzejdz = new JButton("Przejdz");
		btnPrzejdz.setBackground(new Color(30, 144, 255));
		btnPrzejdz.setFont(new Font("Papyrus", Font.BOLD | Font.ITALIC, 14));
		btnPrzejdz.setForeground(new Color(30, 144, 255));
		btnPrzejdz.setBounds(0, 215, 89, 51);
		panelBruttoNettoPodatki.add(btnPrzejdz);

		JLabel lblOdpSlider = new JLabel("");
		lblOdpSlider.setOpaque(true);
		lblOdpSlider.setHorizontalTextPosition(SwingConstants.CENTER);
		lblOdpSlider.setAlignmentY(0.0f);
		lblOdpSlider.setHorizontalAlignment(SwingConstants.CENTER);
		lblOdpSlider.setBounds(new Rectangle(100, 100, 0, 0));
		lblOdpSlider.setBorder(null);
		lblOdpSlider.setForeground(new Color(255, 255, 255));
		lblOdpSlider.setBackground(new Color(30, 144, 255));
		lblOdpSlider.setFont(new Font("Papyrus", Font.PLAIN, 14));
		lblOdpSlider.setBounds(89, 215, 113, 51);
		panelBruttoNettoPodatki.add(lblOdpSlider);

		JPanel panelKosztyMiesieczne = new JPanel();
		panelKosztyMiesieczne.setVisible(false);
		frame.getContentPane().add(panelKosztyMiesieczne, "name_411415613218628");
		panelKosztyMiesieczne.setLayout(null);

		JSlider slider_1 = new JSlider();
		slider_1.setBounds(0, 172, 200, 44);
		slider_1.setValue(0);
		slider_1.setToolTipText("");
		slider_1.setPaintTrack(false);
		slider_1.setPaintTicks(true);
		slider_1.setName("");
		slider_1.setMinimum(-2);
		slider_1.setMaximum(2);
		slider_1.setMajorTickSpacing(1);
		slider_1.setForeground(Color.WHITE);
		slider_1.setFont(new Font("Papyrus", Font.PLAIN, 13));
		slider_1.setBackground(new Color(30, 144, 255));
		panelKosztyMiesieczne.add(slider_1);

		JButton btnPrzejdz1 = new JButton("Przejdz");
		btnPrzejdz1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			}
		});
		btnPrzejdz1.setForeground(new Color(30, 144, 255));
		btnPrzejdz1.setFont(new Font("Papyrus", Font.BOLD | Font.ITALIC, 14));
		btnPrzejdz1.setBackground(new Color(30, 144, 255));
		btnPrzejdz1.setBounds(0, 215, 89, 51);
		panelKosztyMiesieczne.add(btnPrzejdz1);

		JLabel lblOdpSlider1 = new JLabel("");
		lblOdpSlider1.setOpaque(true);
		lblOdpSlider1.setHorizontalTextPosition(SwingConstants.CENTER);
		lblOdpSlider1.setHorizontalAlignment(SwingConstants.CENTER);
		lblOdpSlider1.setForeground(Color.WHITE);
		lblOdpSlider1.setFont(new Font("Papyrus", Font.PLAIN, 14));
		lblOdpSlider1.setBounds(new Rectangle(100, 100, 0, 0));
		lblOdpSlider1.setBorder(null);
		lblOdpSlider1.setBackground(new Color(30, 144, 255));
		lblOdpSlider1.setAlignmentY(0.0f);
		lblOdpSlider1.setBounds(87, 215, 113, 51);
		panelKosztyMiesieczne.add(lblOdpSlider1);

		JPanel panelZapisPoleManewru = new JPanel();
		panelZapisPoleManewru.setVisible(false);
		frame.getContentPane().add(panelZapisPoleManewru, "name_411418355057203");
		panelZapisPoleManewru.setLayout(null);

		JSlider slider_2 = new JSlider();
		slider_2.setValue(0);
		slider_2.setToolTipText("");
		slider_2.setPaintTrack(false);
		slider_2.setPaintTicks(true);
		slider_2.setName("");
		slider_2.setMinimum(-2);
		slider_2.setMaximum(2);
		slider_2.setMajorTickSpacing(1);
		slider_2.setForeground(Color.WHITE);
		slider_2.setFont(new Font("Papyrus", Font.PLAIN, 13));
		slider_2.setBackground(new Color(30, 144, 255));
		slider_2.setBounds(0, 172, 200, 44);
		panelZapisPoleManewru.add(slider_2);

		JButton btnPrzejdz2 = new JButton("Przejdz");
		btnPrzejdz2.setForeground(new Color(30, 144, 255));
		btnPrzejdz2.setFont(new Font("Papyrus", Font.BOLD | Font.ITALIC, 14));
		btnPrzejdz2.setBackground(new Color(30, 144, 255));
		btnPrzejdz2.setBounds(0, 215, 89, 51);
		panelZapisPoleManewru.add(btnPrzejdz2);

		JLabel btnPrzejdz3 = new JLabel("");
		btnPrzejdz3.setOpaque(true);
		btnPrzejdz3.setHorizontalTextPosition(SwingConstants.CENTER);
		btnPrzejdz3.setHorizontalAlignment(SwingConstants.CENTER);
		btnPrzejdz3.setForeground(Color.WHITE);
		btnPrzejdz3.setFont(new Font("Papyrus", Font.PLAIN, 14));
		btnPrzejdz3.setBounds(new Rectangle(100, 100, 0, 0));
		btnPrzejdz3.setBorder(null);
		btnPrzejdz3.setBackground(new Color(30, 144, 255));
		btnPrzejdz3.setAlignmentY(0.0f);
		btnPrzejdz3.setBounds(87, 215, 113, 51);
		panelZapisPoleManewru.add(btnPrzejdz3);

		JMenuBar menuBar = new JMenuBar();
		frame.setJMenuBar(menuBar);

		JMenu mnMenu = new JMenu("Menu");
		menuBar.add(mnMenu);

		JMenu mnZapisz = new JMenu("Zapisz");
		mnMenu.add(mnZapisz);

		JMenuItem mntmTxt = new JMenuItem("jako \"TXT\"");
		mnZapisz.add(mntmTxt);

		JMenuItem mntmCsv = new JMenuItem("jako \"CSV\"");
		mnZapisz.add(mntmCsv);

		JMenuItem mntmWyloguj = new JMenuItem("wyloguj");
		mnZapisz.add(mntmWyloguj);
		mntmWyloguj.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);

			}
		});

	}

	public void gdzieDalej() {
		if (slider.getValue() == 0) {
			lblOdpSlider.setText("Przesuń suwak");
		}
		try {
			String x = Logika1.Przejscie(slider.getValue());
			lblOdpSlider.setText(x);
		} catch (NumberFormatException e) {
			JOptionPane.showMessageDialog(null, e);
		}
	}

	public boolean wyjdzZLoginDalej() {
		try {
			String x = String.valueOf(passwordField.getPassword());
			String y = textLoginSpace.getText();
			if (y.equals("admin") && x.equals("admin")) {
				JOptionPane.showMessageDialog(null, "tak");
				panelLogin.setVisible(false);
				panelBruttoNettoPodatki.setVisible(true);

				return true;

			} else {
				lblFailLogin.setText("Zle dane!");
			}

		} catch (NullPointerException e1) {
			lblFailLogin.setText("" + e1);

		}
		return false;


	}
}

Ma ktoś jakiś pomysl?

0

Hej, po pierwsze podziel se to na kilka klas. Jak to teraz wygląda?
Pakiet z dużej litery? RLY??
Dlaczego UIWindow nie dziedziczy po Jframe i nie zawiera wszystkich pól (JTextfield, JButton itp.)?
Dlaczego nie masz Osobnej klasy z main, w której tworzysz egzemplarz UiWindow???
Kurde, nazwa zmiennej z "_" to nie C++

0

Do tworzenia pobrałem z Eclipse "WindowsBuilder który tak właśnie zapisuje, nie musi UIWindows dziedziczyć po JFrame żeby działało, mam kilka aplikacji w które tak robiłem i wszystko działa. Co do tych pól, powiem szczerze nie wiem, tak w/w buduje aplikacje, jeśli jakieś pole potrzebuje to sobie w każdej chwili mogę dopisać.
Co do pakietu z dużej litery - nie tworzę jakiejś konkretnej aplikacji, ale chce kilka rzeczy'rozwiązań spróbować m.in właśnie aplikacje "wielookienkową" i jak dopisać, trochę później podłączenie bazy danych itd., nie zwróciłem na to większej uwagi. Bądź jednak pewny, że przy aplikacji która "pójdzie gdzieś dalej" na pewno będą zachowane takie szczegóły :)
Tak samo co do nazwy zmiennej, na szybko dopisałem, zresztą co chwila zmieniam bo staram się to ogarnać, podejść to sprawy z różnym zapisem. Nie wiem co konkretnie wywołuje ten błąd (jakbym wiedział to bym już to zrobił) ale myślę ze to może właśnie kwestia pętli. Z jednej strony dopóki nie odnoszę się do prywatnego pola, czyli na przykład napisze "System.out.println("tak"); - to działa, nie wyskakuje błąd.
Wyjątek pokazuje się w momencie gdy chcę ustawić, ze jeśli login i haslo się zgadzają to i dopisuje do jakiekolwiek JPanel ".setVisibility(true)/ bądź (false).
Pojawia się nawet kiedy wpisuje prostu zapis, żeby w JtextField pojawiła się odpowiedz.
Wychodzi na to ze jest to chyba problem z uzyciem tych pól, zaraz zobaczę czy przez "private" czy cos innego.

2

Zawsze mnie ciekawią takie wątki. Przecież Java to nie C++ gdzie nie wiadomo co sie wysypało. To jest java, masz cały stacktrace i konkretną LINIĘ KODU gdzie się wywaliło. Tak trudno postawić tam breakpoint i uruchomic debuger? o_O

0

Skoro się uczysz, to ucz się prawidłowych rzeczy.
Dowiedz się najpierw coś o javie ,a potem zabieraj się do swinga, o OOP, dziedzczeniu, enkapsulacji, co to są relacje "jest" i "ma".
A potem zabieraj się za swinga wątki.
Zgadzam się z Shalomem, ze masz tam stacktrace, więc odpal debug i sprawdź czemu tam leci nullpointer.

0

Black007 - kolego wiem co to jest OOP, dziedziczenie czy "enkapsulacja"/hermetyzacja. Powiem szczerze, że zrobiłem kurs podstawy Javy i takie rzeczy są mi znane, nie oznacza to, że uważam, że znam nie wiadomo ile. :)
Niestety jednak nie było wspomniane o debugowaniu - kolejny moment żeby cos nowego zobaczyć.
Nie przypuszczałem, że debugowanie może tyle powiedzieć, chociaż wiem, że jest to element podstawy tak naprawdę. Dobra, zobaczę jak z tego korzystać i jaka działa.
Dzięki za pomoc chłopaki, zaraz (mam nadzieje) zobaczę o co tu chodzi.

0

Skoro wiesz, to użyj enakpsulacji.
Pomyśl, czy obiekt klasy UiWindow powinien zmieniać coś bezpośrednio w obiekcie JFrame?
Czy może powinieneś stworzyć nową klasę dziedziczącą po JFrame, i w niej dodawać pola (Jtext, jbutton itp.) i funkcjonalności (actionListenery)
A twoja główna klasa z main powinna tylko wywołać frame.setVisible(true) ?
Automatyczne generatory nie są dobre do nauki.

0
Black007 napisał(a):

Skoro wiesz, to użyj enakpsulacji.
Pomyśl, czy obiekt klasy UiWindow powinien zmieniać coś bezpośrednio w obiekcie JFrame?
Czy może powinieneś stworzyć nową klasę dziedziczącą po JFrame, i w niej dodawać pola (Jtext, jbutton itp.) i funkcjonalności (actionListenery)
A twoja główna klasa z main powinna tylko wywołać frame.setVisible(true) ?
Automatyczne generatory nie są dobre do nauki.

Mam inna aplikacje wykonaną za pomocą WindowBuilder (prosty kalkulator) i taki problem nie występuje. Tak również Main wywołuje "setVisible" a actionListenery mam przypisane np. do butonów, nie ma w nim getterów i seterów i działa, nie rozumiem do końca dlaczego tutaj jest inaczej.
Uzyłem debugera, ustawiłem dużą ilość breakpointów i zauważyłem, że w ogóle komponenty (chyba) nie są dostępne. Wyrzuca mi "not available". Tu chyba faktycznie może być kwestia dziedziczenia, zaraz się w to bardziej zagłębie. Nie ukrywam, że deburem ciekawe rzeczy pokazuje ale dalej nie mam pojęcia co to powoduje :)

Co do powiedzmy "stylu pisania" (osobne klasy z Jbutton itd.) to myślałem ze skoro WindowBuilder tak nie robi to nie jest potrzebne, szczególnie, że tak jak mówie widziałęm kilka aplikacji wykonanych za pomocą w/w i działają.

0

Dobra, już doszedłem do tego co takiego się działo! W końcu! :)
problem polegał w tym, że był tworzony obiekt np. "Jbutton but = new JButton" bez pola pola prywatnego, a powinno być pole prywatne a później zapis "but = new JButton". A tak właśnie myślałem cały czas, że chyba cos z tymi polami nie gra :)

0

Nie wiedziałeś, że at Okno.UIWindow.wyjdzZLoginDalej(UIWindow.java:401) pokazuje Ci numer linii?

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