Avatar billede freddy04 Nybegynder
21. marts 2003 - 14:56 Der er 6 kommentarer og
2 løsninger

Cursor placering

Hvad er det nu man skriver for at sætte markøren til at blinke i et bestemt tetxfield når programmet startes?

Er der ikke også en måde hvorpå man kan sætte noget tekst i et textfield fra start hvor det hele er markeret - a la crtl+a?
Avatar billede lrd Nybegynder
21. marts 2003 - 14:59 #1
Hvis det blot er tekstcursor du vil placere er det nemt:

Form og felt skal have navne:
<form name=\"form_navn\" ...>
<input type=\'text\' name=\"felt_navn\" ...>

Så kan du sætte tekst cursoren i det felt med:

    document.form_navn.felt_navn.focus();

muse-cursoren kan du (heldigvis) ikke flytte rundt på.
Avatar billede magoo20000 Nybegynder
21. marts 2003 - 15:00 #2
I dette tilfælde skal du kigge på metoderne arvet fra java.awt.Component. Metoden requestFocus() kan altid bruges på synlige komponenter. Virker dette ikke, så prøv med transferFocus(), som flytter fokus til næste komponent.

Denne kategori handler om Java.
Avatar billede disky Nybegynder
21. marts 2003 - 15:01 #3
lrd:
Hvorfor poster du et html svar i en JAVA gruppe ?
VI snakker ikke javascript her :)
Avatar billede freddy04 Nybegynder
21. marts 2003 - 15:05 #4
ja det er altså ganske alm. java :-)

magoo20000 -> prøver lige requestFocus(), hvad med at markere noget tekst i et field fra start af, kan man det?
Avatar billede lrd Nybegynder
21. marts 2003 - 15:05 #5
læste nok forkert så... Sorry gutter
Avatar billede magoo20000 Nybegynder
21. marts 2003 - 16:45 #6
Er ikke nogen SWT/Swing haj, men måske kan http://www.eksperten.dk/spm/189407 bruges!
Avatar billede magoo20000 Nybegynder
21. marts 2003 - 16:51 #7
Hvis det andet ikke virker, kan du bruge en FocusListener:

public class XXX implements FocusListener
..............................
    public void focusGained(java.awt.event.FocusEvent fe)
    {
        Object source = fe.getSource();
        if ( source == dinFelt){

            beskedFelt.requestFocus();
        }
        if ( source == table) {

            beskedFelt.requestFocus();
        }
        if ( source == beskedFelt){

        }

    }
    public void focusLost(java.awt.event.FocusEvent fe){
        Object source = fe.getSource();
        if ( source == beskedFelt) {
        .......
        }
    }

Der er naturligvis mere at finde om dette i APIen
Avatar billede viht Nybegynder
21. marts 2003 - 19:22 #8
FocusListener reagerer når fokus er etableret, det har intet at gøre med at få fokus.

Hvis et JTextField eller lignende skal have fokus i et program opstart skal du rigtigt nok bruge requestFocus(), men du skal gøre det i en WindowAdapter.

Se følgende eksempel hvor jeg fra start selecter area2 og også bruger en FocusListener for at lytte på hvornår en bruger klikker i area2. Ved klik i area2 bliver al teksten markeret.

// TestFrame.java:

import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;

public class TestFrame extends JFrame {
    public TestFrame() {
        super("Test");
        setSize(600,400);
       
        final JTextArea area1 = new JTextArea();
        area1.setLineWrap(true);
        area1.setWrapStyleWord(true);
        for( int i = 0; i < 10; i++ ) {
            area1.append("Quick brown fox jumps over lazy dog\n");
        }
        final JTextArea area2 = new JTextArea();
        area2.addFocusListener(new FocusAdapter() {
            public void focusGained(FocusEvent event) {
                System.out.println ("wohoo, area2 har fokus");
                area2.selectAll();
            }
        });
       
        JSplitPane split = new JSplitPane    (    JSplitPane.HORIZONTAL_SPLIT,
                                                        new JScrollPane(area1),
                                                        new JScrollPane(area2)
                                                        );
        split.setDividerLocation(290);
        getContentPane().add(split, BorderLayout.CENTER);
       
        addWindowListener(new WindowAdapter() {
            public void windowOpened(WindowEvent event) {
                area2.requestFocus();
            }
        });
    }
    public static void main(String[] args) {
        new TestFrame().show();
    }
}
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