Frame, JFrame, JDialog

Status
Nicht offen für weitere Antworten.

cam

Bekanntes Mitglied
Hallo,

ich hatte mein Programm bis jetzt so, dass ich eine Menge JInternalFrames hatte - funktionierte auch so weit alles, aber jetzt sollen die JInternalFrames allein da stehen, also ohne ein Frame ringsherum, ohne Menüzeile.
Wie mache ich das denn jetzt am besten?
Ich habe mit Frame herumexperimentiert, da geht es aber schon los, dass man keine InputMaps benutzen kann und irgendwie funktioniert der KeyListener auch nicht und naja, nu bin ich am Verzweifeln, wie ich das ganze umsetzen soll????
 

cam

Bekanntes Mitglied
Ok, und wie setzt man denn hier ein Frame sichtbar oder eher wieder unsichtbar und ein anderes sichtbar?
 

cam

Bekanntes Mitglied
Also ich bekomme folgende Fehlermeldung:

Keine Verbindung (login-password): java.lang.NullPointerException
java.lang.NullPointerException
at forms.Login$1.actionPerformed(Login.java:80)
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.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)


Code:
        			try{
        				PreparedStatement stmPass = (PreparedStatement) Forms.cn.prepareStatement("SELECT passwort FROM nutzer WHERE nutz_name = ?");
        				stmPass.setString(1, benName);
        				Forms.rs = stmPass.executeQuery();
        				if(Forms.rs.next()){
        					String passw = Forms.rs.getString(1);
        					passw = passw.trim();
        					if(count < 2){
       							if(passw.equals(passStr)){
       								Forms.login.setVisible(false); //<- Zeile 80
       								Forms.txtBenName.setText(null);
       								Forms.txtPass.setText(null);
       								Forms.start1.setVisible(true);
       								//Start1.menu();
       							}
       							else{
       								Message.loginPass(); //If the password is wrong show message.
       								Forms.txtBenName.setText(null);
       								Forms.txtPass.setText(null);
       								count++;
       							}
        					}
        					else{
        						Message.login(); //If the password is wrong for the third time show message and close application.
        					}
        				}
        			}catch(Exception ex){
        				System.out.println("Keine Verbindung (login-password): " + ex);
						ex.printStackTrace();
        			}
 

Ebenius

Top Contributor
Du bekommst eine NullPointerException die da auftritt:
Code:
at forms.Login$1.actionPerformed(Login.java:80)
Wie sieht denn Zeile 80 (und die umliegenden) in Login.java aus?

Ebenius
 

cam

Bekanntes Mitglied
Der Code steht oben, der Kommentar, wo die Zeile 80 ist, ist etwas weit nach rechts gerutscht, sorry.

So wie ich das verstehe, wird der login ja ausgewertet, aber irgendwas ist falsch mit setVisible...
 

Ebenius

Top Contributor
Ich hab's einfach nicht gesehen, sorry. :)

Forms.login ist null. Woran das liegt, kann man aus dem Quelltext nicht ersehen.

Ebenius
 

cam

Bekanntes Mitglied
Wenn ich das Projekt fertig habe, gebe ich einen aus! ;-)

Ich schicke mal den kompletten Code.

Forms:

[HIGHLIGHT="Java"]package main;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import forms.Login;

@SuppressWarnings("serial")
public class Forms extends JFrame{

public static Connection cn = null;
public static Statement st = null;
public static ResultSet rs = null;

public static JFrame login;
public static JLabel benName;
public static JLabel pass;
public static JTextField txtBenName;
public static JPasswordField txtPass;
public static JButton btAnmelden;
public static JButton btAbbrechen;
public static JPanel benNamePanel;
public static JPanel passPanel;
public static JPanel btLoginPanel;

public static JFrame start1;

public Forms(int x, int y, String title){
setSize(x, y);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((d.width - getSize().width) / 2, (d.height - getSize().height) / 2);
setTitle(title);
}


public static void main(String[] args) {

try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
cn = DriverManager.getConnection("jdbc:sqlserver://localhost; databaseName = Lager; user = sa; password = xxx");
st = cn.createStatement();
System.out.println("Verbindung hergestellt.");
}catch(Exception ex){
System.out.println("Keine Verbindung hergestellt: " + ex);
ex.printStackTrace();
}

JFrame login = new Forms(319, 169, "Login");
login.getContentPane().setLayout(new GridLayout(3, 1));
benName = new JLabel("Benutzername");
benName.setPreferredSize(new java.awt.Dimension(90, 50));
pass = new JLabel("Passwort");
pass.setPreferredSize(new java.awt.Dimension(90, 25));
txtBenName = new JTextField();
txtBenName.setPreferredSize(new java.awt.Dimension(200, 25));
txtPass = new JPasswordField();
txtPass.setPreferredSize(new java.awt.Dimension(200, 25));
btAnmelden = new JButton("Anmelden");
btAbbrechen = new JButton("Abbrechen");
benNamePanel = new JPanel();
benNamePanel.setLayout(new FlowLayout(FlowLayout.LEFT));
benNamePanel.add(benName);
benNamePanel.add(txtBenName);
passPanel = new JPanel();
passPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
passPanel.add(pass);
passPanel.add(txtPass);
btLoginPanel = new JPanel();
btLoginPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
login.add(benNamePanel);
login.add(passPanel);
login.add(btLoginPanel);
login.setVisible(true);
Login.login();

JFrame start1 = new Forms(290, 210, "Hauptmenü");
start1.setVisible(false);
}

}[/HIGHLIGHT]
Login:

[HIGHLIGHT="Java"]package forms;

import java.awt.event.ActionEvent;
import java.sql.PreparedStatement;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;


import main.Forms;
import messages.Message;

public class Login {

@SuppressWarnings("serial")
public static void login() {

Action login = new AbstractAction("Anmelden"){
int count = 0; //after the third time wrong -> application will close
public void actionPerformed(ActionEvent event) {

String benName = Forms.txtBenName.getText();
benName = benName.trim();
System.out.println(benName);

try{
PreparedStatement stmUser = (PreparedStatement) Forms.cn.prepareStatement("SELECT nutz_name FROM nutzer WHERE nutz_name = ?");
stmUser.setString(1, benName);
Forms.rs = stmUser.executeQuery();
if (!Forms.rs.next()) {
if(count < 2){
Message.loginBen();
Forms.txtBenName.setText(null);
Forms.txtPass.setText(null);
count++;
}
else{
Message.login();
}
}
}catch(Exception ex){
System.out.println("Keine Verbindung (login-user): " + ex);
ex.printStackTrace();
}

char[] pass = Forms.txtPass.getPassword();
String passStr = new String(pass);
passStr = passStr.trim();
System.out.println(pass);

try{
PreparedStatement stmPass = (PreparedStatement) Forms.cn.prepareStatement("SELECT passwort FROM nutzer WHERE nutz_name = ?");
stmPass.setString(1, benName);
Forms.rs = stmPass.executeQuery();
if(Forms.rs.next()){
String passw = Forms.rs.getString(1);
passw = passw.trim();
if(count < 2){
if(passw.equals(passStr)){
Forms.login.setVisible(false); //<- Zeile 80
Forms.txtBenName.setText(null);
Forms.txtPass.setText(null);
Forms.start1.setVisible(true);
//Start1.menu();
}
else{
Message.loginPass();
Forms.txtBenName.setText(null);
Forms.txtPass.setText(null);
count++;
}
}
else{
Message.login();
}
}
}catch(Exception ex){
System.out.println("Keine Verbindung (login-password): " + ex);
ex.printStackTrace();
}
}
};

JButton btAnmelden = new JButton(login);
Forms.btLoginPanel.add(btAnmelden);

Action exitAction = new AbstractAction("Abbrechen"){
@Override
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
};

JButton btAbbrechen = new JButton(exitAction);
Forms.btLoginPanel.add(btAbbrechen);
}
}[/HIGHLIGHT]
 
Zuletzt bearbeitet von einem Moderator:

Ebenius

Top Contributor
Ich könnte mir vorstellen, dass Du in Forms.java in Zeile 61 das erste Wort entfernen möchtest.

In Deinen Klassen ist ja alles statisch. Du solltest noch ein bisschen lesen... ;)

Ebenius
 

cam

Bekanntes Mitglied
Also ich bin heute so gut gelaunt, dass ich aufpassen muss, was ich schreibe ;)

Danke! Und ja, du hast recht. Aber ich habe Hoffnung, dass mir im nächsten Semester ein Licht mit dem static und so auf geht. Ab nächste Woche sitze ich wieder in den Vorlesungen und wie ich gelesen habe, gibt es viiiieeel Java ;)
 

Empire Phoenix

Top Contributor
Lass mich raten, du hast vorher mti Delphi gearbeitet? Forms, und nur statisches... is schon verdächtig...
Da deine Frage schon beantwortet war, kann ich nur nahelegen unbedingt mal durchzulesen wo der unterschide zwischen stati und non static sit, und was objecte bedeuten. (google "Java ist auch eine insel")zb
 

cam

Bekanntes Mitglied
Nein, aber ich werde bald mit Delphi arbeiten...

Ich weiß, dass ich noch viel lernen und lesen muss und das werde ich auch!!! Ich muss dieses Programm nur erst mal zum laufen bringen und das bis am besten vorgestern und dann hab ich hoffentlich die Zeit, das ordentlich nachzulesen und zu korrigieren.

Das ist das erste, für mich große, Projekt, dass ich mache. Ich habe so etwas noch nie gemacht. Es war meine Aufgabe im Praxissemester und auch wenn man vieles anders macht, als ich es nun mal programmiert habe, habe ich viel dabei gelernt.

Und ich bin wirklich dankbar, dass es dieses Forum gibt und nette Leute hier, die mir so viel geholfen haben!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
E 2. JFrame erkennt 1. Frame Java Basics - Anfänger-Themen 6
Alex_99 Aktion ausführen wenn Frame disposed wurde Java Basics - Anfänger-Themen 5
frager2345 Fensterklasse, Wie auf Frame im Listender zugreifen (ItemEvents) Java Basics - Anfänger-Themen 7
S GUI Frame wechseln Java Basics - Anfänger-Themen 15
C Exportierte JAR öffnet zweiten Frame nicht mehr Java Basics - Anfänger-Themen 7
C Erkennen ob Frame geschlossen wurde Java Basics - Anfänger-Themen 2
C Erste Schritte Spieler an anderen Frame weitergeben Java Basics - Anfänger-Themen 23
G Probleme bei Frame aufgaben Java Basics - Anfänger-Themen 6
S Interface (WindowBuilder) Panels in einen Frame einfügen Java Basics - Anfänger-Themen 10
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
M Erste Schritte Neuen Frame nur einmal offen haben Java Basics - Anfänger-Themen 6
schoenosrockos JButton füllt immer das ganze frame Java Basics - Anfänger-Themen 1
R Erste Schritte Frame mit Ladebalken und BestätigungsButton Java Basics - Anfänger-Themen 10
das_leon Interface Frame in einem Frame (Window Builder) Java Basics - Anfänger-Themen 2
Anfänger2011 Frame zeigt nicht gewünschtes Ergebnis an ... Java Basics - Anfänger-Themen 5
Z Object Kreis am Frame abprallen lassen! Java Basics - Anfänger-Themen 12
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
I Methoden Schwierikeiten mit Protokollfenster (Frame Objekt) Java Basics - Anfänger-Themen 4
A mehrere Panels in eigenen Klasssen in einem Frame Java Basics - Anfänger-Themen 16
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
W Frame in anderer Klasse anzeigen lassen Java Basics - Anfänger-Themen 1
E Von Instanz des Dialogs auf das Frame zugreifen Java Basics - Anfänger-Themen 8
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
R File chooser Dateien in frame anzeigen lassen Java Basics - Anfänger-Themen 5
L bestimmten Frame anzeigen lassen? Java Basics - Anfänger-Themen 6
H Textfeldinhalt löschen nachdem Frame geschlossen wird Java Basics - Anfänger-Themen 8
L Kalender Java Frame Java Basics - Anfänger-Themen 7
A Frame Java Basics - Anfänger-Themen 3
P Verwirrung mit AWT Frame und main Methode Java Basics - Anfänger-Themen 19
A Frame java Java Basics - Anfänger-Themen 3
D Frame schließt gleich alle Frames Java Basics - Anfänger-Themen 5
T udp -> bytearray -> image -> ausgabe via frame Java Basics - Anfänger-Themen 6
J Erste Schritte Speichern / Speichern unter / title Frame Java Basics - Anfänger-Themen 5
F Frame in Frame Java Basics - Anfänger-Themen 3
U GUI - resize frame Java Basics - Anfänger-Themen 13
J Open reading Frame Java Basics - Anfänger-Themen 4
J Erstelltes Frame wird nicht angezeigt Java Basics - Anfänger-Themen 2
K Frame öffnen klappt nicht?! Java Basics - Anfänger-Themen 36
JAVAnnik Anwendung nach Schließen vom letzen Frame Java Basics - Anfänger-Themen 9
B Referenz zu anderen Frame Java Basics - Anfänger-Themen 10
A Frame Background Java Basics - Anfänger-Themen 21
S Klassen Klassenname = Frame? Java Basics - Anfänger-Themen 11
R Eingefärbtes Panel wird in Frame nicht angezeigt Java Basics - Anfänger-Themen 10
I Java - Text in neuem Frame wird nicht angezeigt Java Basics - Anfänger-Themen 4
M Frame mit mehreren areas Java Basics - Anfänger-Themen 14
B Frame über Button öffnen Java Basics - Anfänger-Themen 8
R Button soll neuen Frame öffnen Java Basics - Anfänger-Themen 21
L Variablen Frame Variablen-Schleife Java Basics - Anfänger-Themen 3
D Neues Frame öffnen Java Basics - Anfänger-Themen 7
V Frame bleibt grau Java Basics - Anfänger-Themen 5
G Polygon in Frame zeichnen Java Basics - Anfänger-Themen 3
F frame wird nicht angezeigt? Java Basics - Anfänger-Themen 10
S 2 Panels in einen Frame Java Basics - Anfänger-Themen 5
H Panels in Frame einbinden Java Basics - Anfänger-Themen 3
E Frame neu Zeichnen Java Basics - Anfänger-Themen 3
A Bild wird auf Frame nicht angezeigt! Keine Fehlermeldung Java Basics - Anfänger-Themen 3
O Grafik in Frame laden Java Basics - Anfänger-Themen 9
T Frame öffnen Java Basics - Anfänger-Themen 6
I 1 Frame und mehrere Panels klappt nicht Java Basics - Anfänger-Themen 4
I JTable in bestehenden Frame integrieren Java Basics - Anfänger-Themen 6
Y Hilfe: JOGL / OPENGL in Frame Java Basics - Anfänger-Themen 2
J Frame schließen, Ereignis behandeln, Vorgang abbrechen Java Basics - Anfänger-Themen 4
Luk10 Frame schließen Java Basics - Anfänger-Themen 2
A Frame schließen!? Help! Java Basics - Anfänger-Themen 5
A Frame reagiert nicht Java Basics - Anfänger-Themen 6
H Modalen JDialog schließen, ohne dabei das Parent-Frame zu schließen Java Basics - Anfänger-Themen 7
J Frame bleibt schwarz beim Laden Java Basics - Anfänger-Themen 11
ModellbahnerTT Unterschied zwischen zwei Frame close Varianten Java Basics - Anfänger-Themen 3
R Frame Inhalt ausrichten Java Basics - Anfänger-Themen 5
MisterSeven Java Swing - Wie Frame größe festlegen?! Java Basics - Anfänger-Themen 10
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11
Stillmatic1985 Label in einem Frame zentrieren Java Basics - Anfänger-Themen 4
A Grafik erstellen und in Frame einfügen Java Basics - Anfänger-Themen 17
A Java Frame per X schließen? Java Basics - Anfänger-Themen 7
H2SO3- image beim awt frame wegmachen Java Basics - Anfänger-Themen 2
kulturfenster Panel in Frame integrieren Java Basics - Anfänger-Themen 5
kulturfenster Per Button Frame schliessen Java Basics - Anfänger-Themen 2
I JButton zum frame schließen Java Basics - Anfänger-Themen 6
M Variable in Frame anzeigen Java Basics - Anfänger-Themen 11
O Beim Schließen JDialog, im Frame-Owner eine Methode starten Java Basics - Anfänger-Themen 6
hdi Desktop-Auflösung abfragen -> setLocation() von Frame Java Basics - Anfänger-Themen 5
hdi keylistener hat keinen fokus oder: listener ohne frame? Java Basics - Anfänger-Themen 10
S Übergabe von Frame-Objekt - kritisch? Java Basics - Anfänger-Themen 7
N Frame in Frame erstellen Java Basics - Anfänger-Themen 2
B Java-Frame Taschenrechner - String -> Int und umgekehrt Java Basics - Anfänger-Themen 8
G Bild wird im falschen Frame angezeigt Java Basics - Anfänger-Themen 5
G Frame soll Focus behalten Java Basics - Anfänger-Themen 2
H Frame schließen Java Basics - Anfänger-Themen 5
G Frame Applet oder doch was anderes Java Basics - Anfänger-Themen 2
M Frame zeigt Desktop als Hintergrund Java Basics - Anfänger-Themen 2
J Eine swf-datei in einen Frame einfügen? Java Basics - Anfänger-Themen 6
K Schrift und Farben im Frame (Anfänger) Java Basics - Anfänger-Themen 2
D Frame in Center Screen Java Basics - Anfänger-Themen 7
A Frame aus Applet erzeugen und mit Inhalt füllen Java Basics - Anfänger-Themen 5
G Problemme mit: Aufruf einer Klasse aus einem Frame Java Basics - Anfänger-Themen 5
M Frame Schließen Java Basics - Anfänger-Themen 5
H homepage in frame aufrufen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben