26. marts 2005 - 13:59Der er
13 kommentarer og 1 løsning
Fokus på JFrame
Hvordan fungerer fokus egentlig i Java? Er det den sidst oprettede komponent, der, som standard, vil få fokus, når ens JFrame bliver paintet?
Og hvordan gør jeg egentlig, hvis jeg vil sætte fokus på min JFrame som standard, selvom jeg har en enkelt JButton, som åbenbart tager fokus?
Jeg har prøvet med en requestFocusInWindow() lige før min setVisible(true), det ændrer ikke på noget, men hvis det er lige efter setVisible(true), får min JFrame åbenbart fokus, men min JButton bliver skjult, dog vises den, hvis jeg klikker i det område, hvor jeg har vist den.
Kort fortalt, jeg vil have min JFrame i fokus, men min JButton skal stadig vises alligevel :)
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Kan du ikke i stedet for måske forklarer mig, hvorfor min JButton forsvinder? Og hvordan fokus fungerer i Java? Ligesom jeg har spurgt? :) For øvrigt skjules min JButton nu første gang, jeg starter mit Java program, men derefter vises den, men får desværre også fokus på trods af min requestFocusInWindow()???
Jeg sætter den ikke til visible, det er den som standard, og selvom jeg prøver det, så bliver den stadig skjult...det er som om min JFrame kommer til at overlappe min JButton på en eller anden måde. Og ja, den ligger i en container som jeg laver med getContentPane();
normalt ligger man sine ting på en panel eller lignende. (forklare ikke hvorfor den ikke er synlig din knap) men synes du skal prøve at ligge din knap på en panel
Forstår ikke lige hvorfor din Frame skal have focus og ikke en knap eller andet, men du kan flytte focus til din frame ved at adde en componentListener og flytte focus når den vises.
Normal focus rækkefølge foregår i samme rækkefølge som komponenterne addes
Eksempel på JFrame focus:
public class Test extends javax.swing.JFrame {
public Test() { initComponents(); setSize(400,400); }
private void initComponents() { jButton1 = new javax.swing.JButton();
He he...jeg spurgte lige på Usenet, og fik en noget nemmere løsning...blot at sætte setFocusable(false); *g* Men jeg tror egentlig, det med den skjulte button har noget at gøre med lagene i JFrame, så når jeg sætter fokus på min JFrame, kommer hele det lag øverst, og overskygger derved min JButton :)
Øhh - ja setFocusable(false); kendes vel af de fleste
Men der jo himmel vid forskel på om en knap IKKE MÅ kunne få focus eller om det er Framen SKAL have focus når den åbnes, hvilket jo ikke er nogen hindring for at knappen kan opnå focus senere - og jeg tror vi var et par stykker som opfattede spørgsmålet på den måde :)
Jeg er temmelig meget nybegynder i Java...I know nuthing (for nu at citere en kendt spanioler *g*), og da det alligevel kun er en midlertidig knap, så er jeg egentlig ligeglad med om den kan få fokus eller ej, bare det er nemt *g*
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.