Ich bin grade dabei mir ein paar Grundkenntnisse in Java anzueignen und bin deshalb damit beschäftigt ein kleines "Progrämmchen" zu schreiben, doch auf einmal wird mir im Haupt-Programm(Klasse: Beispielklasse2) das home Panel in meinem Frame nicht angezeigt... Danke schonmal fürs Helfen
Klasse: Beispielklasse:
Beispielklasse2:
Klasse: Beispielklasse:
Java:
package de.beispielnutzer.Beispielklasse;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;
public class Beispielklasse extends JPanel
implements ActionListener {
private static String OK = "ok";
int t = 3;
private JFrame controllingFrame;
private JPasswordField passwordField;
private JPasswordField usernameField;
public Prog(JFrame f) {
//Flow Layout wird benutzt.
controllingFrame = f;
//Usernameeingabe wird erstellt
usernameField = new JPasswordField(10);
usernameField.addActionListener(this);
//Passworteingabe wird erstellt.
passwordField = new JPasswordField(10);
passwordField.setActionCommand(OK);
passwordField.addActionListener(this);
JLabel userlabel = new JLabel("Username eingeben: ");
userlabel.setLabelFor(usernameField);
JLabel label = new JLabel("Password eingeben: ");
label.setLabelFor(passwordField);
JComponent buttonPane = createButtonPanel();
//Panels werden erstellt.
JPanel textPane = new JPanel(new FlowLayout(FlowLayout.TRAILING));
textPane.add(userlabel);
textPane.add(usernameField);
textPane.add(label);
textPane.add(passwordField);
controllingFrame.setResizable(false);
controllingFrame.setAlwaysOnTop(true);
add(textPane);
add(buttonPane);
}
protected JComponent createButtonPanel() {
JPanel p = new JPanel(new GridLayout(0,1));
JButton okButton = new JButton("OK");
okButton.setActionCommand(OK);
okButton.addActionListener(this);
p.add(okButton);
return p;
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (OK.equals(cmd)) {
char[] input = passwordField.getPassword();
char[] userinput = usernameField.getPassword();
if (isUsernameCorrect(userinput) && isPasswordCorrect(input)) {
JOptionPane.showMessageDialog(controllingFrame,
"Richtig!");
controllingFrame.setVisible(false);
Main programobject = new Main();
programobject.mainprogram();
} else {
if (t == 2 ) {
t--;
JOptionPane.showMessageDialog(controllingFrame,
"Falscher Username oder falsches Passwort. Noch " + t + " Versuch.");
Arrays.fill(input, '0');
usernameField.selectAll();
resetFocus();
} else {
if(t==1) {
JOptionPane.showMessageDialog(controllingFrame,
"Keine Versuche verbleibend!");
System.exit(ERROR);
} else {
t--;
JOptionPane.showMessageDialog(controllingFrame,
"Falscher Username oder falsches Passwort. Noch " + t + " Versuche.");
Arrays.fill(input, '0');
usernameField.selectAll();
resetFocus();
}
}
} } else {
}
}
private static boolean isPasswordCorrect(char[] input) {
boolean isCorrect = true;
char[] correctPassword = { 'b', 's', 'p' };
if (input.length != correctPassword.length) {
isCorrect = false;
} else {
isCorrect = Arrays.equals (input, correctPassword);
}
Arrays.fill(correctPassword,'0');
return isCorrect;
}
protected void resetFocus() {
usernameField.requestFocusInWindow();
}
private static boolean isUsernameCorrect(char[] userinput) {
boolean isCorrect = true;
char[] correctPassword = { 'b', 's', 'p' };
if (userinput.length != correctPassword.length) {
isCorrect = false;
} else {
isCorrect = Arrays.equals (userinput, correctPassword);
}
Arrays.fill(correctPassword,'0');
return isCorrect;
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("Einloggen");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final Prog newContentPane = new Prog(frame);
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.addWindowListener(new WindowAdapter() {
public void windowActivated(WindowEvent e) {
newContentPane.resetFocus();
}
});
//Fenster sichtbar machen.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
}
});
}
}
Beispielklasse2:
Java:
package de.beispielnutzer.Beispielklasse2;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Beispielklasse2 {
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
int width = (int) size.getWidth();
int height = (int) size.getHeight();
int pwidth= (int) width/2;
int pheight = (int) height/2;
int x = (int) width/4;
int y = (int) height/4;
public static String SMALL = "small";
public static String CLOSE = "close";
public static String SETTINGS = "settings";
public Main() {
}
public void mainprogram() {
JFrame program = new JFrame("Beispielprogramm");
program.setVisible(true);
program.setBounds(480, 270, 960, 540);
JPanel homePanel = new JPanel();
homePanel.setLayout(null);
program.add(homePanel);
JButton settingsButton = new JButton();
settingsButton.setIcon(new ImageIcon("img/wheel.png"));
settingsButton.setBounds(880, 15, 50, 50);
settingsButton.setBorder(BorderFactory.createEmptyBorder());
settingsButton.setContentAreaFilled(false);
settingsButton.setActionCommand(SETTINGS);
settingsButton.setVisible(true);
homePanel.add(settingsButton);
JButton greySettingsButton = new JButton();
greySettingsButton.setIcon(new ImageIcon("img/greyWheel.png"));
greySettingsButton.setBounds(880, 15, 50, 50);
greySettingsButton.setBorder(BorderFactory.createEmptyBorder());
greySettingsButton.setContentAreaFilled(false);
greySettingsButton.setActionCommand(SETTINGS);
greySettingsButton.setVisible(true);
JButton closeButton = new JButton();
closeButton.setIcon(new ImageIcon("img/close.png"));
closeButton.setBounds(810, 15, 50, 50);
closeButton.setBorder(BorderFactory.createEmptyBorder());
closeButton.setContentAreaFilled(false);
closeButton.setActionCommand(CLOSE);
homePanel.add(closeButton);
JButton smallButton = new JButton();
smallButton.setIcon(new ImageIcon("img/small.png"));
smallButton.setBounds(715, 15, 80, 50);
smallButton.setBorder(BorderFactory.createEmptyBorder());
smallButton.setContentAreaFilled(false);
smallButton.setActionCommand(SMALL);
homePanel.add(smallButton);
JLabel homeLabel = new JLabel("Home");
homeLabel.setBounds(150, 5, 300, 80);
homeLabel.setFont(new Font("BankGothic Md BT Mittel", 0, 60));
homePanel.add(homeLabel);
JPanel settingsPanel = new JPanel();
settingsPanel.setLayout(null);
settingsPanel.setVisible(false);
settingsPanel.add(smallButton);
settingsPanel.add(closeButton);
settingsPanel.add(greySettingsButton);
program.add(settingsPanel);
JLabel settingsLabel = new JLabel("Settings");
settingsLabel.setBounds(150, 5, 500, 80);
settingsLabel.setFont(new Font("BankGothic Md BT Mittel", 0, 60));
settingsPanel.add(settingsLabel);
JLabel windowNameLabel = new JLabel("Window Name:");
JTextField windowName = new JTextField();
ImageIcon box = new ImageIcon ("img/box.png");
JLabel boxLabel = new JLabel (box);
boxLabel.setBounds(-40, 60, 1920, 1080);
homePanel.add(boxLabel);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if(SETTINGS.equals(cmd)) {
} else {
if(CLOSE.equals(cmd)) {
} else {
if(SMALL.equals(cmd)) {
}
}
}
}
}