Pierwszy raz od dawna powróciłem do biblioteki Swing. I od razu napotkałem następujący problem. Mam mianowicie obiekt JFrame (o nazwie okno), który zawiera menu (generowane przy pomocy constructmenu()). W są możliwe do wygenerowania 2 "interfejsy" (klasy JPanel) i jeden wyświetlany standardowo na początku ("welcomemsg"), każde stworzone w konstruktorze "okna" jako obiekty klasy:
-powitanie, panel który startuje w main:
public static void main(String[] args) {
window okno = new window("Kryptografia symetryczna", 600,480);
okno.constructmenu();
okno.constructwelcomemsg();
okno.setVisible(true);
}
-podpisywanie. Panel który startuje przy pomocy podpis.createcontents(). Podpis to obiekt w klasie JFrame. samo createcontents wygląda następująco:
void createcontents() {
if(frame.podpis!=null) frame.remove(frame.podpis);
if(frame.msg!=null) frame.remove(frame.msg);
if (frame.sprawdz!=null) frame.remove(frame.sprawdz);
this.setBackground(Color.DARK_GRAY);
signit = new JButton();
signit.setText("Podpisz");
signit.setBounds(300, 300, 300, 300);
this.add(signit);
frame.add(this);
frame.pack();
}
Czyli najpierw usuwam stare interfejsy w ramki, a potem dodaję mój.
-sprawdzanie podpisu (jeszcze nie zrobione)
Problem polega na tym, że dodawany przycisk zawsze umieszcza się na środku ekranu. Przy debugowaniu okazuje się, iż jego koordynaty są pamiętane w ramach podpisu, ale w ramce są już niewidoczne. Ma ktoś jakiś pomysł?