Ustawienie kursora na JTextField

2015-01-19 15:40
Hżvf
0

Mam dwa pola tekstowe: Pole1 i Pole2. Co zrobić, aby kursor domyślnie ustawiał się na Pole2?

Pozostało 580 znaków

2015-01-19 15:48
1
Pole2.requestFocus();

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2015-01-19 16:34
Hżvf
0

Poniżej public void actionPerformed(ActionEvent e) - działa. Co zrobić, aby po uruchomieniu programu, kursor oczekiwał w Pole2?

`dodanie znacznika ``` - @furious programming

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2015-01-19 18:06
0

Dopisz to na końcu konstruktora, przed

setVisible(true);

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2015-01-20 15:39
Hżvf
0

Ale chyba z wnętrza metody statycznej nie możemy odwołać się do Pole2, nie zadeklarowanego jako statyczne.
Wstawiam przykładowy kod.

public class Rozmowa_1_1 extends JFrame implements ActionListener
{
    private JTextArea Pole1;
    private JTextField Pole2;
    private JButton przyciskOK;
    private JLabel lTutajWpisz;

    public static void main(String[] args)
    {
        Rozmowa_1_1 aplikacja = new Rozmowa_1_1();
        aplikacja.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        aplikacja.setVisible(true);
    }   

    public Rozmowa_1_1()
    {   
        setSize(1440,860);
        setTitle("ROZMOWA");
        setLayout(null);

        Pole1 = new JTextArea("");
        Pole1.setBounds(260,100,800,100);
        Pole1.setFont(new Font("Arial", Font.PLAIN, 15));
        add(Pole1);

        Pole2 = new JTextField("");
        Pole2.setBounds(450,275,400,50);
        add(Pole2);

        JButton przyciskOK = new JButton ("OK");
        przyciskOK.setBounds(600, 350, 80, 50);
        add(przyciskOK);
        przyciskOK.addActionListener(this);

        lTutajWpisz = new JLabel("Tutaj wpisz odpowiedź i zatwierdź przyciskiem OK");
        lTutajWpisz.setBounds(450, 230, 300, 50);
        add(lTutajWpisz);

        Pole1.setText("Jak masz na imię?"); 
    }

    @Override
    public void actionPerformed(ActionEvent e)
    {

       String pytania = Pole1.getText();
       String odpowiedzi = Pole2.getText();

       if (pytania.equals("Jak masz na imię?") && odpowiedzi.equalsIgnoreCase("Ola"))
       {
           Pole1.setText("Cześć Ola! Ile masz lat?");
           Pole2.setText("");
           Pole2.requestFocus();
       }

       else if (pytania.equals("Cześć Ola! Ile masz lat?") && Integer.parseInt(odpowiedzi) == 10)
       {
           Pole1.setText("10 lat... To pewnie chodzisz do czwartej klasy. \nLubisz matematykę?");
           Pole2.setText("");
           Pole2.requestFocus();
       }

       else if (pytania.equals("10 lat... To pewnie chodzisz do czwartej klasy. \nLubisz matematykę?") && odpowiedzi.equalsIgnoreCase("Tak"))
       {
           Pole1.setText("To mam dla Ciebie zadanie. Ile to będzie: 8 x 9?");
           Pole2.setText("");
           Pole2.requestFocus();
       }  
    }

    public JButton getPrzyciskOK() 
    {
        return przyciskOK;
    }

    public void setPrzyciskOK(JButton przyciskOK) 
    {
        this.przyciskOK = przyciskOK;
    }       
}
edytowany 1x, ostatnio: bogdans, 2016-12-13 18:26
!Wstawiaj kod w znaczniki <code=java></code> - bogdans 2015-01-20 15:53

Pozostało 580 znaków

2015-01-20 15:53
0

Napisałem

Dopisz to na końcu konstruktora
.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2015-01-20 15:54

Pozostało 580 znaków

2015-01-22 14:29
Hżvf
0

Nie działa, chyba coś źle rozumiem.
Mam wstawić:

Pole2.requestFocus();

pod:

Pole1.setText("Jak masz na imię?");

?

dodanie znaczników <code class="java"> - @furious programming

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26
Wstawiaj kod w znaczniki kolorujące składnię! - furious programming 2015-01-22 15:58

Pozostało 580 znaków

2015-01-23 13:27
Hżvf
0

Wczoraj przeczytałem gdzieś, że nie da się przez

requestFocus();

Naprawdę nie ma w JAVA prostego sposobu, żeby kursor oczekiwał w polu tekstowym, po uruchomieniu programu?

Pozostało 580 znaków

2015-01-23 20:20
0

Fragment dokumentacji metody

requestFocus();

Note that the use of this method is discouraged because its behavior is platform dependent. Instead we recommend the use of requestFocusInWindow(boolean).

Korzystaj z dokumentacji https://docs.oracle.com/javase/8/docs/api/index.html


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0