Avatar billede aslan Nybegynder
20. maj 2002 - 09:44 Der er 12 kommentarer og
1 løsning

Kan ikke sætte focus på textfield?

Jeg kan ikke få sat focus på textfield. Jeg har forsøgt mig med requestFocus() og transferFocus() uden held?
Avatar billede bumle90 Nybegynder
20. maj 2002 - 10:18 #1
må vi se lidt kode?
Avatar billede aslan Nybegynder
20. maj 2002 - 10:25 #2
Denne textfield vil jeg gerne have sat focus på når min JFrame starter:

        forNavn = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 1;
        gridbag.setConstraints(forNavn, c);
        contentPane.add(forNavn);
        forNavn.addActionListener(this);
Avatar billede carstenknudsen Nybegynder
20. maj 2002 - 10:53 #3
Har du forsøgt at kalde forNavn.requestFocus()
lige efter at du kalder pack() og show()
på din JFrame?
Avatar billede bearhugx Nybegynder
20. maj 2002 - 10:53 #4
prøv
  forNavn.grabFocus();
Avatar billede aslan Nybegynder
20. maj 2002 - 11:01 #5
forNavn.grabFocus() virker ikke og heller ikke pack() og show() ?
Avatar billede carstenknudsen Nybegynder
20. maj 2002 - 11:04 #6
pack og show virker naturligvis ellers
er der noget helt galt. Normalt vil
du kalde pack og show som de sidste
kommandoer i din JFrame konstruktor.
Du husker vel at kalde dem på JFrame'en
ikke på JTextField'et? Har du prøvet at
have noget som følgende i din konstruktor:
public MyFrame() {
...
getContentPane.add( forNavn );
...
pack();
show();
forNavn.requestFocus();
}
Avatar billede aslan Nybegynder
20. maj 2002 - 11:13 #7
Mit eksempel er lidt kompleks jeg samler mine JFrames i en  JTabbedPane() og derfor bruger jeg ikke show() og pack():

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

public class GaestG extends JFrame implements ActionListener
{

    JButton opret,søg,opdater,afslut;
    JTextField gæstNr,forNavn,efterNavn,adresse,telefon,idNr,firma,cvr,rabat;
    JRadioButton privatGæst,erhvervsGæst;

    ButtonGroup grup = new ButtonGroup();


    Gaest hentGaest;

    public GaestG(Gaest g) {

        hentGaest = g;

        Container contentPane = getContentPane();
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        contentPane.setLayout(gridbag);


        c.fill = GridBagConstraints.HORIZONTAL;


        JLabel skriv = new JLabel("Gæste Nr");
        c.insets = new Insets(0,0,0,0);
        c.gridx = 0;
        c.gridy = 0;
        gridbag.setConstraints(skriv, c);
        contentPane.add(skriv);
        skriv.setFont(new Font("Serif", Font.BOLD, 13));

        JLabel skriv2 = new JLabel("Fornavn");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 1;
        gridbag.setConstraints(skriv2, c);
        contentPane.add(skriv2);
        skriv2.setFont(new Font("Serif", Font.BOLD, 13));

        JLabel skriv3 = new JLabel("Efternavn");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 2;
        gridbag.setConstraints(skriv3, c);
        contentPane.add(skriv3);
        skriv3.setFont(new Font("Serif", Font.BOLD, 13));

        JLabel skriv4 = new JLabel("Adresse");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 3;
        gridbag.setConstraints(skriv4, c);
        contentPane.add(skriv4);
        skriv4.setFont(new Font("Serif", Font.BOLD, 13));

        JLabel skriv5 = new JLabel("Telefon");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 4;
        gridbag.setConstraints(skriv5, c);
        contentPane.add(skriv5);
        skriv5.setFont(new Font("Serif", Font.BOLD, 13));

        privatGæst = new JRadioButton();
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 5;
        gridbag.setConstraints(privatGæst, c);
        contentPane.add(privatGæst);
        privatGæst.setSelected(true);
        privatGæst.addActionListener(this);
        grup.add(privatGæst);


        erhvervsGæst = new JRadioButton();
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 6;
        gridbag.setConstraints(erhvervsGæst, c);
        contentPane.add(erhvervsGæst);
        erhvervsGæst.addActionListener(this);
        grup.add(erhvervsGæst);


        JLabel skriv8 = new JLabel("ID Nummer");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 7;
        gridbag.setConstraints(skriv8, c);
        contentPane.add(skriv8);
        skriv8.setFont(new Font("Serif", Font.BOLD, 13));


        JLabel skriv9 = new JLabel("Firma");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 9;
        gridbag.setConstraints(skriv9, c);
        contentPane.add(skriv9);
        skriv9.setFont(new Font("Serif", Font.BOLD, 13));


        JLabel skriv10 = new JLabel("CVR");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 10;
        gridbag.setConstraints(skriv10, c);
        contentPane.add(skriv10);
        skriv10.setFont(new Font("Serif", Font.BOLD, 13));

        JLabel skriv11 = new JLabel("Rabat");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 11;
        gridbag.setConstraints(skriv11, c);
        contentPane.add(skriv11);
        skriv11.setFont(new Font("Serif", Font.BOLD, 13));


        gæstNr = new JTextField(10);
        c.insets = new Insets(0,20,0,0);
        c.gridx = 1;
        c.gridy = 0;
        gridbag.setConstraints(gæstNr, c);
        contentPane.add(gæstNr);
        gæstNr.setEditable(false);
        gæstNr.setText(""+(hentGaest.tæller()+1));

        forNavn = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 1;
        gridbag.setConstraints(forNavn, c);
        contentPane.add(forNavn);
        forNavn.addActionListener(this);

        efterNavn = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 2;
        gridbag.setConstraints(efterNavn, c);
        contentPane.add(efterNavn);
        efterNavn.addActionListener(this);


        adresse = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 3;
        gridbag.setConstraints(adresse, c);
        contentPane.add(adresse);
        adresse.addActionListener(this);


        telefon = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 4;
        gridbag.setConstraints(telefon, c);
        contentPane.add(telefon);
        telefon.addActionListener(this);


        JLabel skriv6 = new JLabel("Privat Gæst");
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 5;
        gridbag.setConstraints(skriv6, c);
        contentPane.add(skriv6);
        skriv6.setFont(new Font("Serif", Font.BOLD, 13));


        JLabel skriv7 = new JLabel("Erhvervs Gæst");
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 6;
        gridbag.setConstraints(skriv7, c);
        contentPane.add(skriv7);
        skriv7.setFont(new Font("Serif", Font.BOLD, 13));

        idNr = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 7;
        gridbag.setConstraints(idNr, c);
        contentPane.add(idNr);
        idNr.setEditable(true);
        idNr.addActionListener(this);


        firma = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 9;
        gridbag.setConstraints(firma, c);
        contentPane.add(firma);
        firma.setEditable(false);
        firma.addActionListener(this);


        cvr = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 10;
        gridbag.setConstraints(cvr, c);
        contentPane.add(cvr);
        cvr.setEditable(false);
        cvr.addActionListener(this);


        rabat = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 11;
        gridbag.setConstraints(rabat, c);
        contentPane.add(rabat);
        rabat.setEditable(false);
        rabat.addActionListener(this);


        opret = new JButton("Opret");
        c.insets = new Insets(10,300,0,0);
        c.gridx = 2;
        c.gridy = 0;
        gridbag.setConstraints(opret, c);
        contentPane.add(opret);
        opret.addActionListener(this);

        søg = new JButton("Søg");
        c.insets = new Insets(10,300,0,0);
        c.gridx = 2;
        c.gridy = 1;
        gridbag.setConstraints(søg, c);
        contentPane.add(søg);
        søg.addActionListener(this);
        søg.setFont(new Font("Serif", Font.BOLD, 13));


        opdater = new JButton("Opdater");
        c.insets = new Insets(10,300,0,0);
        c.gridx = 2;
        c.gridy = 2;
        gridbag.setConstraints(opdater, c);
        contentPane.add(opdater);
        opdater.addActionListener(this);
        opdater.setFont(new Font("Serif", Font.BOLD, 13));


        afslut = new JButton("Afslut");
        c.insets = new Insets(20,300,0,0);
        c.gridx = 2;
        c.gridy = 3;
        gridbag.setConstraints(afslut, c);
        contentPane.add(afslut);
        afslut.addActionListener(this);
        afslut.setFont(new Font("Serif", Font.BOLD, 13));

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {

                    System.exit(0);
                }

        });

        pack();
        forNavn.requestFocus();
    }

    public void actionPerformed( ActionEvent e )
    {

            if(e.getSource() == privatGæst)
            {
                idNr.setEditable(true);
                firma.setEditable(false);
                cvr.setEditable(false);
                rabat.setEditable(false);

            }
            if(e.getSource() == erhvervsGæst)
            {
                idNr.setEditable(false);
                firma.setEditable(true);
                cvr.setEditable(true);
                rabat.setEditable(true);
            }

    try
        {
            if( e.getSource() == opret &&  privatGæst.isSelected() )

            {
                gæstNr.setText(""+(hentGaest.tæller()+1));

                hentGaest.opretGaest((hentGaest.tæller()+1),0,forNavn.getText(),efterNavn.getText(),
                adresse.getText(),new Integer(telefon.getText()).intValue(),5);
                forNavn.setText("");
                efterNavn.setText("");
                adresse.setText("");
                telefon.setText("");


                hentGaest.opretPrivat(hentGaest.tæller(),idNr.getText());
                idNr.setText("");

            }

            if( e.getSource() == opret &&  erhvervsGæst.isSelected() )
            {
                gæstNr.setText(""+(hentGaest.tæller()+1));

                hentGaest.opretGaest((hentGaest.tæller()+1),0,forNavn.getText(),efterNavn.getText(),
                adresse.getText(),new Integer(telefon.getText()).intValue(),5);
                forNavn.setText("");
                efterNavn.setText("");
                adresse.setText("");
                telefon.setText("");

                hentGaest.opretErhverv(hentGaest.tæller(),firma.getText(),cvr.getText(),
                new Integer(rabat.getText()).intValue());
                firma.setText("");
                cvr.setText("");
                rabat.setText("");
            }


        }
        catch(NumberFormatException a){System.out.println(a);}


        if( e.getSource() == afslut )
        {
            System.exit(0);
        }

    }
}
Avatar billede carstenknudsen Nybegynder
20. maj 2002 - 11:19 #8
Smid også din Gaest klasse op så
man kan forsøge at køre programmet.
Avatar billede aslan Nybegynder
20. maj 2002 - 11:25 #9
Det er bare mine db queries!


import java.sql.*;

class Gaest
{

    int gæsteNr,antalReservation,type,tlf,rabat;

    String navn,efterNavn,adresse;

    ConnectDB db = new ConnectDB( "jdbc:interbase://localhost/C:/Documents and Settings/aslan/Skrivebord/modelKomponent/HOTEL.GDB", "sysdba", "masterkey" );

    Gaest(int nr,int antal,String na,String ad,int tl)
    {
        gæsteNr = nr;
        antalReservation = antal;
        navn = na;
        adresse = ad;
        tlf = tl;
    }
    Gaest()
    {
    }
    public void opretGaest(int nr,int type,String navn,String efterNavn,String adresse,int tlf,int antalRes)

    {
      db.insert( "INSERT INTO GAEST VALUES('"+nr+"','"+type+"','"+navn+"','"+efterNavn+"','"+adresse+"','"+tlf+"','"+antalRes+"')" );

    }

    public void opretErhverv(int nr,String firma,String cvr,int rabat)
    {

        db.insert( "INSERT INTO ERHVERVSGAEST VALUES('"+nr+"','"+firma+"','"+cvr+"','"+rabat+"' )" );


    }

    public void opretPrivat(int nr,String id )
    {

        db.insert( "INSERT INTO PRIVATGAEST VALUES('"+ nr+"','"+id+"' )" );


    }
    public int tæller()
    {
        int ialt=0;
        try
        {
            ResultSet row = db.select( "SELECT * FROM Gaest" );

            while( row.next() )
            {
                ialt++;

            }
        }
        catch( SQLException cs )
        {
            System.out.println( cs );
        }
        return ialt;
    }

}
Avatar billede carstenknudsen Nybegynder
20. maj 2002 - 12:06 #10
Det kan jeg sgu' ikke afprøve. Nå, men
en løsning er som følger:
Du skal på din JTabbedPane tilføje en
ChangeListener dvs der skal implementeres
en metode stateChanged(ChangeEvent ce).
Hvis ce.getSource().equals(dinJFrame)
hvor dinJFrame er den JFrame der har dit
JTextField du vil fokusere skal den
kalde en metode på din JFrame og i den
metode skal du kalde forNavn.requestFocus().
Det er lidt besværligt, men jeg tror ikke
at det kan gøres meget mere enkelt (det
kan det selvfølgelig men jeg ved ikke hvordan).
Avatar billede carstenknudsen Nybegynder
20. maj 2002 - 12:36 #11
Hmm den ce.getSource().equals(dinJFrame)
skal vel ikke være dinJFrame men noget
der har med fanebladene at gøre, men
det må du hellere eksperimentere med.
Avatar billede aslan Nybegynder
20. maj 2002 - 20:31 #12
ehm.. jeg har lidt svært ved at følge dig:)
Avatar billede aslan Nybegynder
26. maj 2002 - 11:04 #13
ellers tak
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