09. november 2004 - 12:39Der er
36 kommentarer og 1 løsning
Nyt vindue skal deaktivere gammel vindue
I min applet kan man vha. en knap åbne et nyt vindue. I den forbindelse ønsker jeg, at selve appletten skal blive "låst", sådan at man ikke kan operere på det mens vinduet er åbent. Ligesom når man f.eks. i IE trykker funkioner -> internetindstillinger.
Svar gerne med eksempler, da jeg ikke er helt stærk i java
Hmm... Jeg kan få den til at blive deaktiveret - men jeg kan ikke helt regne ud, hvor dit kodeeksempel skal placeres, sådan at den atter kan blive aktiv. Du kan se hvordan jeg åbner det nye vindue her: void OpenPanel_actionPerformed(ActionEvent e) { final Panel panelWindow = new Panel(reader_ip, port); JFrame frame2 = new JFrame("ITC-1 Panel"); this.setEnabled(false); frame2.getContentPane().add(panelWindow); frame2.setSize(465, 253); frame2.setResizable(false); panelWindow.init(); panelWindow.start(); frame2.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { panelWindow.disconnect(); } }); frame2.setVisible(true); }
Og er der noget metode for at undgå at hovedvinduet overhovedet kan komme i fokus - altså sådan at det nyåbnede vindue altid være på toppen af det andet?
Var det ikke en del nemmere, at lave en JOptionPane og fylde sit eget panel ind i den!? En JOptionPane er som default modal, det vil sige at den blokere det bagvedliggende...
Eksempel:
JPanel panel = new JPanel(); Object[] options = new String[]{"Ok"};
Jeg tog tidlig fri i går og er først kommet retur til eksperten nu - sikke mange svar - tak for det :) Jeg kigger dem lige igennem her i løbet af formiddagen, og ser om jeg kan få det til at virke.
Jeg har fundet en alternativ løsning, der opfylder mine behov. Jeg sætter alle knapper på hovedsiden til enabled=false når vinduet åbnes og til true når det lukkes. Jeg har været kraftig inspireret af kalp så du får pointene... Tak
Tak skal du have! af en eller anden grund gad min ikke sætte vinduet tilbage til enabled når det nye blev lukket! og prøvede ellers i 2 timer hehe og lavede projektet om ... men glad for du fik løst din problemstilling:)
måske er det lettere men måske passer den løsning ham ikke.
preet:
jeg fandt ud af mit kodeeksempel... lidt kluder med kendskabet hehe men nu virker koden! tak for point forresten! og du kan evt teste det nu.. frame1 åbner frame 2 og så kan man ikke bruge frame1 mere før frame 2 bliver lukket..
Hehe, nej! Det kan da godt være løsningen ikke passer ham! MEN:
Citat: "I den forbindelse ønsker jeg, at selve appletten skal blive "låst", sådan at man ikke kan operere på det mens vinduet er åbent. Ligesom når man f.eks. i IE trykker funkioner -> internetindstillinger. "
Det er nøjagtigt hvad en JOptionPane gør. Hverken mere eller mindre!!!
Ingen grund til endnu engang at opfinde den dybe tallerken! Blot min mening...
Må nok sige i er aktive selvom spørgsmålet er lukket. Det er rigtigt at jeg ønskede at vinduet blev låst, men den løsning jeg selv fandt frem til gør ikke helt det - så er gået lidt på kompromis.
Jeg er lidt i tvivl om hvordan det JOptionPane fungerer - de vinduer jeg åbner er ret komplekse, idet det ene simulerer et panel på forsiden af den enhed, jeg programmerer til, og det andet er en Terminal. Kan det lade sig gøre at proppe det i et JOptionPane?
Inden I begge programmerer videre for min skyld, skal det dog lige tilføjes at jeg nok holder mig til min løsning, da jeg er lidt under tidspres, men at jeg blot ønsker at få stillet min nysgerrighed... :)
public class Test extends JApplet { private JButton push_me = new JButton("Tryk på mig");
public Test() { setSize(400, 400);
push_me.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent e) { // Nedenstående er det eneste der er nødvendigt!!! Object[] options = new String[]{"Ok"}; MyPanel panel = new MyPanel();
public static void main(String[] args) { JFrame f = new JFrame(); f.getContentPane().add(new Test(), BorderLayout.CENTER); f.setVisible(true); } }
// Dit eget panel med alle de komponenter du nu har lyst til class MyPanel extends JPanel { private JButton button = new JButton("Bla bla"); private JRadioButton rb1 = new JRadioButton("Test1"); private JRadioButton rb2 = new JRadioButton("Test2"); private JRadioButton rb3 = new JRadioButton("Test3"); private ButtonGroup group = new ButtonGroup();
public MyPanel() { group.add(rb1); group.add(rb2); group.add(rb3);
Jeg er bedøvende ligeglad med point, hvis ikke spørger kan bruge mit svar!
Du er glad for at hjælpe og det er fint - det er det Eksperten går ud på! Dog synes jeg bare at dine svar mange gange forvirre mere end de gavner, derfor gav jeg dig den karma. I starten gav jeg dig faktisk en god karme pga. din iver for at hjælpe, men jo flere indlæg det blev til jo mere forvirrende blev det.
At du så synes at du skal hævne dig og give mig dårlig karma, viser vel en hel del om dig som person. Og det afspejler sig så også i dine færdigheder bla. inden for programmering!
preet: Beklager at jeg roder op i denne tråd, men det var den der blev henvist til.
Det viser overhovedet intet om mig som person. Jeg har svaret på en del Java spørgsmål og ja selvfølgelig prøver jeg at svare på spørgsmål i Java katagorien selv om jeg ikke har prøvet at løse sådan et problem før... ligesom her i dette spørgsmål fordi jeg havde en ide til hvordan det kunne gøres. Som jeg siger har jeg programmeret Java under 3måneder så det helt sikkert at jeg vil misforstå visse spørgsmål fordi jeg tror spørgeren mener noget men det så viser sig han mener noget helt andet... det skyldes selvfølgelig jeg ikke er nået til det område i mit programmering niveau, men kan tryste dig med jeg bliver bedre og bedre på for hver dag.
Du velkommen til at henvise til de Java spørgsmål jeg har svaret blankt på for kan slet ikke forestille mig det er så mange. Jeg kom kun i tanker om dette spørgsmål fordi der var lidt uenighed om hvad de fylder mest om mindst..
Da dette spørgsmål blev oprettet kendte jeg ikke til JOptionPane.
Men mener stadig det fylder mere en mit forslag.. siger ikke man skal skrive mere kode hvis man skal anvende en JOptionPane, men der må stå en hel del kode i en JOptionPane.
Jeg har fjernet min karmatildeling til dig - så kan du tænke/mene om det hvad du vil. Men jeg gider ikke det her ordkløveri!
Jeg mener stadig det er fint, at du gerne vil hjælpe - det eneste jeg prøver at sige, er at det er en god idé, at finde ud af hvad spørger egentlig spørger om og har brug for, inden man smider løsninger.
--- Og mht. JOptionPane så synes jeg bestemt, at man skal gøre brug af de komponenter udviklerne på Sun har lavet til samme formål. Mon ikke de kan tryne både dig og mig rimelig hurtigt rent programmeringsmæssigt ? :)
Hvordan kan det være du ikke er ligeglad med karma når du er ligeglad med point? Bare nysgerrig!
Og med hensyn til brug af Sun's komponenter så husk på JFrame også er udviklet er sun's folk og jeg udnyttede bare funktionerne i JFrame... (enable/disable) og det vel også okay?
men angående min deltagelse på eksperten under Java katagorien vil jeg fortsat svare på spørgsmål, men kan prøve at undgå visse spørgsmål fremover(foreløbigt) og så kan du jo vurdere min Java nivea senere for det kan som sagt kun blive bedre!
Jeg burde egentlig også, og er det også som regel, være ligeglad med karma. Det eneste der slog mig, var at det var en hævnagt og ikke en vurdering af min færden her på Eksperten.
Og så en sidste ting - prøv at kør det eksempel jeg lavede, så er jeg næsten sikker på, at du vil gi' mig ret mht. JOptionPane... :)
Har prøvet(i dit eksempel mangler du dog at sætte en størrelse på første frame) og det virker fint nok, men man kan sige begge eksempler virker som de skal. Jeg synes hverken en JOptionPane var svære eller nemmere at anvende en min forslag, men du siger i din kommentar: mikkelbm 12/11-2004 13:50:46 at der ikke er nogen grund til at opfinde den dybe tallerken og det har du ret i, men synes ikke jeg opfundet noget så god er jeg slet ikke endnu. Gjorde bare brug af 2 metoder i JFrame:) Men lad os lade det ligge ved det... dit forslag var gyldigt og mit også... selv om spørgeren kom frem til en løsning delvist selv med sin egen løsning hehe
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.