Witam. Probowalem rozwiazac zadanie z pewnego kursu - utworzenie panelu logowania i jezeli dane sa poprawne to ma powstac nowy panel - edytor html z mozliwoscia podgladu rezultatow.
Nie wyskakuja zadne bledy, ale po wprowadzeniu loginu i hasla nic sie nie dzieje. Sprawdzalem i wszystko dziala, a problem tkwi w linijkach 67-69. Jak to poprawic zeby dzialalo? Bardzo prosze o pomoc :)
KOD:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import java.util.*;
public class LoginPanel extends JPanel implements ActionListener{
private JTextField nazwa;
private JPasswordField haslo;
private JButton logowanie;
private JLabel name;
private JLabel password;
private String login = "kowalski";
private String pw = "jan";
private JFrame frame = new JFrame();
public String getName(){
return nazwa.getText();
}
public String getPassword(){
String password = "";
char[] pass = haslo.getPassword();
for(int i=0; i<pass.length; i++){
password = password + pass[i];
}
return password;
}
public LoginPanel(){
super();
name = new JLabel("Nazwa: ");
password = new JLabel("Hasło: ");
logowanie = new JButton("Zaloguj");
haslo = new JPasswordField();
nazwa = new JTextField();
logowanie.addActionListener(this);
JPanel tabelka = new JPanel();
tabelka.setLayout(new GridLayout(2,2));
tabelka.add(name);
tabelka.add(nazwa);
tabelka.add(password);
tabelka.add(haslo);
JPanel przyciski = new JPanel();
przyciski.setLayout(new BorderLayout());
przyciski.add(tabelka, BorderLayout.CENTER);
przyciski.add(logowanie, BorderLayout.SOUTH);
this.add(przyciski);
}
public boolean sprawdzenie(){
if(getName().equals(login) & getPassword().equals(pw))
return true;
else
return false;
}
public void actionPerformed(ActionEvent e){
if(sprawdzenie()){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
67 frame.getContentPane().removeAll();
68 frame.add(new HTMLPanel());
69 frame.validate();
}
});
}
}
}
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import java.util.*;
public class HTMLPanel extends JPanel implements ActionListener{
public JTextArea tekst = new JTextArea();
public JEditorPane edytor = new JEditorPane();
JButton podglad;
public HTMLPanel(){
super();
setLayout(new BorderLayout());
nowyPanel();
}
public void nowyPanel(){
edytor.setEditable(false);
edytor.setContentType("text/html");
podglad = new JButton("Podglad");
podglad.addActionListener(this);
tekst.setBackground(Color.LIGHT_GRAY);
JPanel wyglad = new JPanel();
wyglad.setLayout(new GridLayout(1,2));
wyglad.add(tekst);
wyglad.add(edytor);
this.add(wyglad, BorderLayout.CENTER);
this.add(podglad, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
String text = tekst.getText();
edytor.setText(text);
edytor.revalidate();
}
});
}
}
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import java.util.*;
public class Frame extends JFrame{
public Frame(){
super("Test");
add(new LoginPanel());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setPreferredSize(new Dimension(600,400));
setLocation(500,200);
pack();
}
}
import java.awt.EventQueue;
public class Main{
public static void main(String[] args){
EventQueue.invokeLater(new Runnable(){
public void run(){
new Frame();
}
});
}
}