Hey... Der er lige lidt mange linier kode til at poste - det er en JFrame med 3 JPanels, hvor den ene af de 3 JPanels skal enten vises eller fjernes når der trykkes på menpunktet show... Den JFrame der indeholder de og som skal opdateres 3 JPanels hedder frame... Hvordan laver jeg et objekt af klassen? mvh Mads
Hvis vi nu siger at den "du gerne vil kalde repaint på" hedder Gui Så opretter du et objekt af klassen ved at sige "Gui guiObjekt = new Gui();" Derefter kan du så kalde repain metoden uden problem ("guiObjekt.repaint();").
Hejsa Ahh - nu har jeg endelig fattet det :-). Og ja - frame = guiObjekt... Nu er min frame oprettet som objekt i main-metoden, men repaint funktionen kaldes i en anden metode... Skal jeg så også oprette et objekt der? mvh Mads
Det er fordi du kalder en ikke static metode fra en static metode (main). Men hvis du vil repainte, så kan du jo i frame klassen kalde repaint ved "this.repaint" - jeg er ikke helt med på hvorfor du vil repainte fra en main metode i en anden klasse?
Hey... Det eneste mainmetoden gør er at oprette et objekt af frame klassen, og vise det - ideen var så at når man trykkede på en knap som er beskrevet i en anden klasse at frame objektet skulle repaintes. mvh Mads
Det vil sige at du opretter to objekter i din main metode? Her kommer lige en måde at gøre det på - skulle jeg mene... Jeg går ud fra at du har: en main klasse (MainClass) din frame klasse (frame) din anden klasse (klasse2)
Understående foregår i din main klasses main metode: 1) Du opretter guiObjekt (Gui guiObjekt = new Gui();) 2) Du opretter et objekt af klasse2 og sender guiObjekt med derovre som parameter - modtager det og lave repaint hvor du vil på objektet.
Er det helt ved siden af hvordan du gør det? det er i hvert fald en mulig løsning på dit problem... Kan du følge mig?
Da jeg ikke kan finde ud af om du har fået løst problemet, og du åbenbart har rigelig med kode til at poste her, så får du lige et lille eksempel at grave i. Måske kan det give dig en ide om hvordan du kan løse det.
public class Exp extends javax.swing.JFrame {
public Exp() { initComponents(); }
private void initComponents() { panel2 = new javax.swing.JPanel(); panel1 = new javax.swing.JPanel(); panel3 = new javax.swing.JPanel(); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); item1 = new javax.swing.JMenuItem(); item2 = new javax.swing.JMenuItem();
Hey... Det var det i foreslog der fik mig på rette køl - havde lige rod i hvilken klasse der skulle repaintes - men det hjalp lige at se lidt kode og så'n... Takker!
Synes godt om
Ny brugerNybegynder
Din løsning...
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.