Mam pewien problem a zarazem pytanie: czy da się zrobić takie coś aby przy kliknięciu na przycisk jeden JApplet się zamykał a drugi na jego miejsce się otwierał?
Do zrobienia mam system egzaminacyjny, i chcę aby okno logowania po wpisaniu loginu i hasła przeistaczało się w okno egzaminacyjne/administracyjne.
okno_logowania.class
package se;
import java.applet.Applet;
import java.io.BufferedReader;
import java.io.FileReader;
import javax.sound.midi.Receiver;
public class okno_logowania extends javax.swing.JApplet {
okno_admina oa = new okno_admina();
/** Initializes the applet NewJApplet */
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
/** This method is called from within the init() method to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
login = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
haslo = new javax.swing.JPasswordField();
setBackground(new java.awt.Color(51, 204, 0));
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
jLabel1.setText("System Egzaminowania Stażystów");
jLabel2.setText("Login");
jLabel3.setText("Haslo");
jButton1.setText("Loguj");
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton1MouseClicked(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(64, 64, 64)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(haslo)
.addComponent(login, javax.swing.GroupLayout.DEFAULT_SIZE, 171, Short.MAX_VALUE))
.addGap(167, 167, 167)))
.addContainerGap(42, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(41, Short.MAX_VALUE)
.addComponent(jLabel1)
.addGap(65, 65, 65))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(41, 41, 41)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(login, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(31, 31, 31)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(haslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(66, 66, 66)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(58, Short.MAX_VALUE))
);
}// </editor-fold>
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
String slogin = login.getText();
char[] s2 = haslo.getPassword();
String shaslo = new String(s2);
System.out.println(slogin + " " + shaslo);
String loginy = "loginy.txt";
String hasla = "hasla.txt";
Applet receiver = null;
String receiverName = "okno_admina"; // Podaj nazwę apletu.
receiver = getAppletContext().getApplet(receiverName);
if (receiver != null) {
// Operatorem instanceof sprawdzimy, czy znaleziony obiekt jest
// klasy Receiver.
if (!(receiver instanceof Receiver)) {
receiver.setVisible(true);
}}
try {
String clogin;
String chaslo;
String admin="admin";
String hasloadmin="admin";
BufferedReader brl = new BufferedReader(new FileReader(loginy));
BufferedReader brh = new BufferedReader(new FileReader(hasla));
// System.out.println(slogin.equals(linia));
while ((clogin=brl.readLine()) != null){
if (slogin.equals(clogin)){
while ((chaslo=brh.readLine()) != null){
if (shaslo.equals(chaslo)){
System.out.println("zalogowano:" + slogin + "/" + shaslo);
System.out.println("otwórz okno okno_egzaminu");
}
}}}
brl.close();
brh.close();
}
catch(Exception ek){}
}
// Variables declaration - do not modify
private javax.swing.JPasswordField haslo;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField login;
// End of variables declaration
}
okno_admina.class
package se;
public class okno_admina extends javax.swing.JApplet {
/** Initializes the applet okno_admina */
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
/** This method is called from within the init() method to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
jLabel1.setText("System Egzaminacyjny Stażystów");
jLabel2.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
jLabel2.setText("Panel administracyjny");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(51, 51, 51)
.addComponent(jLabel1))
.addGroup(layout.createSequentialGroup()
.addGap(147, 147, 147)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 213, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(63, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel2)
.addContainerGap(242, Short.MAX_VALUE))
);
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
// End of variables declaration
}
Na przykładowe rozwiązania nie patrzeć ;)
Dodam iż piszę w netBeans IDE 6.5, używam designera JApplet.