Avatar billede magnusn Nybegynder
01. juni 2005 - 16:42 Der er 26 kommentarer og
1 løsning

Children og parent frames?

Hey, jeg er igang med at lave et program hvor der er et hovedvindue og et undervindue som skal bruges til at vise info alt efter hvad der bliver markeret i hovedvinduet. Jeg vil derfor finde en løsning hvor der først åbnes hoved- og dernæst undervindue. Undervinduet skal ikke kunne lukkes men rykkes rundt med. Tilgengæld skal hele programmet lukkes når hovedevinduet lukkes. Nogen der kan hjælpe mig? Har ledt i 2 timer nu, og uden held med at finde hverken tutorials eller noget andet :(
Avatar billede arne_v Ekspert
01. juni 2005 - 16:47 #1
Det er nok for specielt til at du kan finde eksempler på nettet.

Men begge vinduer extender vel JFrame.

Det første vindue har en normal setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
mens det andet vindue har noget mere specielt.

Hvis de to begge er deres egen ActionListener og har en reference til hinanden
så bør opdatering på tværs også kunne lade sig gøre.

Hvor meget erfaring har du med Java og Swing ? Jeg kan godt prøve at bixe et eksempel !
Avatar billede magnusn Nybegynder
01. juni 2005 - 16:51 #2
Jeg har haft et års skoleundervisning og så har jeg en smule programmeringserfaring fra C++. Jeg lader mig bare let forvirre af for store koder, så det hele er blevet så rodet nu :(
Men du må godt lave et simpelt eksempel. Det ville jeg sætte STOR pris på :)
Avatar billede simonvalter Praktikant
01. juni 2005 - 17:08 #3
det lyder som om at du leder efter noget floating/docking til det undervindue.. det er ikke noget der er direkte support for men du kunne kigge på dette framework.

http://www.swingall.com/jdock.html
Avatar billede magnusn Nybegynder
01. juni 2005 - 17:24 #4
Hvis Arne kommer med et eksempel, tror jeg at jeg vælger det. For mit program skal bruges til eksamen, og den pc det skal køres vil jo ikke have jdock installeret.
Avatar billede simonvalter Praktikant
01. juni 2005 - 17:31 #5
swingall er vist heller ikke gratis.. men så er der http://www.infonode.net/
som har gpl license.Der er heller ikke noget der skal være instaleret man vedlægger bare den jar som man benytter klasser fra... men det er nok rigtigt at det er bedst at du laver det selv hvis det er til eksamen.
Avatar billede simonvalter Praktikant
01. juni 2005 - 18:22 #6
tag et kig på jinternalframe og se om det gør hvad du leder efter.

http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html
Avatar billede magnusn Nybegynder
01. juni 2005 - 18:38 #7
Undervinduet skal være udenfor overvinduets frame, så internalframe er ikke lige det jeg skal bruge :)
mit undervindue er sådan set kun et normalt vindue som også bliver lukket når hovedvinduet lukkes men ikke selv kan lukkes.
Avatar billede arne_v Ekspert
01. juni 2005 - 18:45 #8
et lille super simpelt eksempel:

import java.awt.event.*;

import javax.swing.*;

public class PrimaryFrame extends JFrame implements ActionListener {
    private JButton btn;
    private SecondaryFrame sf;
    private int n;
    public PrimaryFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Primary Frame");
        setSize(300, 300);
        n = 0;
        btn = new JButton("Klik");
        btn.setSize(50, 20);
        btn.addActionListener(this);
        getContentPane().add(btn);
        sf = new SecondaryFrame();
        sf.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        n++;
        sf.append("Du klikkede " + n + ". gang");
    }

    public static void main(String[] args) {
        PrimaryFrame f = new PrimaryFrame();
        f.setVisible(true);
    }
}

class SecondaryFrame extends JFrame {
    private JTextArea ta;
    public SecondaryFrame() {
        setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Secondary Frame");
        setSize(200, 200);
        ta = new JTextArea();
        getContentPane().add(new JScrollPane(ta));
    }
    public void append(String s) {
        ta.append("\r\n" + s);
    }
}
Avatar billede magnusn Nybegynder
01. juni 2005 - 18:53 #9
Det ser lovende ud, jeg vil prøve at integrere det i mit program. Men 2 spørgsmål:
1. må en class godt være erklæret efter der er kaldt på den?
2. hvordan giver man point?
Avatar billede magnusn Nybegynder
01. juni 2005 - 19:12 #10
okay, jeg har integreret det nu, men problemet er der stadigvæk..
Når jeg lukker mit hovedvindue, så lukker det andet ikke, og nægter selvfølgelig at lukke når jeg har sat den til DO_NOTHING_ON_CLOSE :/
Avatar billede magnusn Nybegynder
01. juni 2005 - 19:17 #11
Hvis nogen er åben for at guide mig over msn eller ICQ, ville det være fint. Så kan det være nogen kan pege fejlen ud i mit program :)
Avatar billede arne_v Ekspert
01. juni 2005 - 19:19 #12
Når jeg klikker på PrimaryFrame vinduets kryds så lukker begge vinduer.

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Avatar billede arne_v Ekspert
01. juni 2005 - 19:20 #13
Du kan godt have mere end en class i en fil. Men kun en af dem kan være public.

Du vil sikkert have de 2 class i hver sin fil - jeg puttede dem bare i samme
for nemheds skyld.

Rækkefølgen af class og metoder er ligegyldig i java.
Avatar billede arne_v Ekspert
01. juni 2005 - 19:21 #14
Ingen IM programmer (der er iøvrigt også en del regler i Ekspertens regelsæt
mod den slags).
Avatar billede arne_v Ekspert
01. juni 2005 - 19:21 #15
og et svar hvis du får det til at virke
Avatar billede arne_v Ekspert
01. juni 2005 - 19:22 #16
og du kan jo eventuel poste noget kode der ikke virker her og se om vi kan komme
med nogle gode råd
Avatar billede magnusn Nybegynder
01. juni 2005 - 19:22 #17
Argh, jeg mente at jeg havde sat hovedvinduet til det ellers!
Det virker nu og jeg takker MANGE gange for jeres hjælp. Point til Arne hvis jeg kan få lidt hjælp til hvordan det gøres! :)
Avatar billede magnusn Nybegynder
01. juni 2005 - 19:23 #18
sådan, så skulle det var gjort :)
Avatar billede magnusn Nybegynder
06. juni 2005 - 15:30 #19
Så har jeg været til eksamen med mit program, og jeg fik 10 :)
Avatar billede arne_v Ekspert
06. juni 2005 - 15:36 #20
tillykke
Avatar billede magnusn Nybegynder
06. juni 2005 - 15:38 #21
Jo tak, og tak for din hjælp da jeg var mest frustreret hehe
Avatar billede arne_v Ekspert
22. juni 2005 - 17:41 #22
så mangler du bare at acceptere
Avatar billede arne_v Ekspert
24. juli 2005 - 16:33 #23
...
Avatar billede magnusn Nybegynder
24. juli 2005 - 21:16 #24
Jamen jeg accepterede da da jeg skrev "Sådan, så skulle det være gjort :)"
Avatar billede arne_v Ekspert
24. juli 2005 - 21:35 #25
du skal markere mit navn i combo boxen ude til venstre så det bliver blåt og så
klikke accepter
Avatar billede magnusn Nybegynder
24. juli 2005 - 21:39 #26
sådan, _NU_ skulle det virke.. :P
Avatar billede arne_v Ekspert
24. juli 2005 - 21:40 #27
yes !
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester