Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
I din konstruktør til en af dine klasser som opretter et JPanel skal du lige have en JFrame parameter med... og til at gemme denne skal du lige oprette en JFrame objekt reference.
Ved attributterne.
private JFrame jFrame;
public klasseNavn(JFrame jFrame) { this.jFrame = jFrame; }
når du så opretter denne klasse fra din orginale JFrame klasse siger du
For at et objekt skal kunne pille ved et andet skal det have en reference til det...
Et objekt som opretter et andet objekt (fx. JFrame som opretter en af dine klasser) kan selvfølgelig ændre alt ved denne klasse... men klassen kender IKKE JFrame objektet og kan derfor ikke pille ved det medmindre du gør som beskrevet før.. lader JFrame sende sig selv med over i konstruktøren på det objekt den opretter:)
dvs. så kender de hinanden og begge kan pille ved hinandens metoder.
Hvis du kan sige setVisible(false); fra din JFrame.. ved at kalde den metode i det objekt den har oprettet.. og objektet kan selvfølgelig også selv kalde den metode i sig selv.:)
Kom også til at tænke på hvis dine JPanels ikke er erklæret private i dine klasser s kan man tilgå direkte blot ved at have initialiseret den klasse som opretter dem..
når jeg nu er kommet til tilstrekkeligt langt tilbage og gjort Panel usynligt, kan jeg så sætte et andet panel der ligger i samme objekt synlige? Hvis jeg getParent´er en gang til får jeg vel det objekt mit "objekt" ligger i men kan jeg herfra kalde et andet objekt der ligger i samme objekt......hvis det ellers giver mening
jarret >> Jeg ved ikke helt om det svare til, at man gør en JFrame til setVisible(false); og så prøver at gøre nogle komponter på den til setVisible(true);
De er synlige i JFramen'en men da den er ikke er synlig for dig kan du alligevel ikke se dem.
men ved ikke om det gælder for JPanels for de ligger trods alt i en JFrame så man kan under alle omstændigheder se en brugergrænseflade.
så det kode du har pasted for oven hvis det er en kode som viser det er muligt så er det bare godt nok:)
Det lyder som om du er på vej ud i noget snavs, med en masse referencer i ydre/indre paneler som vises skjules, det ender i hø, prøv at studere en af nedenstående løsninger
LØSNING 1.
import java.awt.*; public class TestCardLayout extends javax.swing.JFrame {
public TestCardLayout() { initComponents(); setSize(400,400); }
private void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); jPanel4 = new javax.swing.JPanel(); jPanel5 = new javax.swing.JPanel(); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenuItem1 = new javax.swing.JMenuItem(); jMenuItem2 = new javax.swing.JMenuItem(); jMenuItem3 = new javax.swing.JMenuItem();
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.