/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Keyboardfokus på et JPanel
Fra : Kristian Erbou [7100~


Dato : 15-05-02 17:53

Hej

Hvordan add'er man keyboardfokus til et JPanel? Jeg har 2 JPanels lagt i en
Container, og begge paneler returnerer false, når man kalder metoden
hasFocus(). Hvordan sætter jeg fokus på et af panelerne?

Mvh Kristian



 
 
Jacob Vandborg (16-05-2002)
Kommentar
Fra : Jacob Vandborg


Dato : 16-05-02 07:40

> Hvordan sætter jeg fokus på et af panelerne?


Hej Kristian

Prøv med ditJPanel.requestFocus(); og læs API-dok. Der står meget godt i.

Mvh. Jacob



Kristian Erbou [7100~ (16-05-2002)
Kommentar
Fra : Kristian Erbou [7100~


Dato : 16-05-02 12:11

Den er pløjet igennem indtil flere gange, men vi kan bare ikke komme ud af
stedet... Problemet er, at vi er ved at lave et spil a la orm - det ene
panel indeholder en labyrint og selve ormen (det er selvfølgelig her,
tastaturets fokus skal være) og så et panel, der indeholder information om
antal spiller, points osv... Fokus er på info-panelet og ikke spil-panelet.
Lidt kode følger:

public class LabyrintGame extends JFrame
{
public LabyrintGame()
{
setSize(FRAMEWIDTH , FRAMEHEIGHT) ;
setTitle("Labyrint");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//setResizable(false);
Container contentPane = getContentPane();
contentPane.setLayout(null);

gi = new GameInformation();
gb = new GameBoard(p, FRAMEWIDTH - 230, FRAMEHEIGHT);
gb.setBounds(0, 0, 600, 600);
gi.setBounds(630, 0, 210, 600);

contentPane.add(gb);
contentPane.add(gi);

gb.requestFocus(); //Virker af en eller anden underlig årsag ikke...
gb.addKeyListener(new KeyReader(p));



show();
run();
}


Hvad f***** går der galt?

Mvh Kristian


"Jacob Vandborg" <fireman@linux.eucsyd.dk> wrote in message
news:3ce35431$0$78772$edfadb0f@dspool01.news.tele.dk...
> > Hvordan sætter jeg fokus på et af panelerne?
>
>
> Hej Kristian
>
> Prøv med ditJPanel.requestFocus(); og læs API-dok. Der står meget godt i.
>
> Mvh. Jacob
>
>



Jacob Vandborg (17-05-2002)
Kommentar
Fra : Jacob Vandborg


Dato : 17-05-02 07:22

Hej Kristian

Har du prøvet at kalde isRequestFocusEnabled()....hvis den returnere false,
kan du prøve at kalde setRequestFocusEnabled(true).

Jeg ved ikke om det virker, men du kan da prøve ad.

Mvh. Jacob

"Kristian Erbou [7100]" <erbou@hotmail.com> wrote in message
news:3ce393b1$0$10896$ba624c82@nntp01.dk.telia.net...
> Den er pløjet igennem indtil flere gange, men vi kan bare ikke komme ud af
> stedet... Problemet er, at vi er ved at lave et spil a la orm - det ene
> panel indeholder en labyrint og selve ormen (det er selvfølgelig her,
> tastaturets fokus skal være) og så et panel, der indeholder information om
> antal spiller, points osv... Fokus er på info-panelet og ikke
spil-panelet.
> Lidt kode følger:
>
> public class LabyrintGame extends JFrame
> {
> public LabyrintGame()
> {
> setSize(FRAMEWIDTH , FRAMEHEIGHT) ;
> setTitle("Labyrint");
> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> //setResizable(false);
> Container contentPane = getContentPane();
> contentPane.setLayout(null);
>
> gi = new GameInformation();
> gb = new GameBoard(p, FRAMEWIDTH - 230, FRAMEHEIGHT);
> gb.setBounds(0, 0, 600, 600);
> gi.setBounds(630, 0, 210, 600);
>
> contentPane.add(gb);
> contentPane.add(gi);
>
> gb.requestFocus(); //Virker af en eller anden underlig årsag ikke...
> gb.addKeyListener(new KeyReader(p));
>
>
>
> show();
> run();
> }
>
>
> Hvad f***** går der galt?
>
> Mvh Kristian
>
>
> "Jacob Vandborg" <fireman@linux.eucsyd.dk> wrote in message
> news:3ce35431$0$78772$edfadb0f@dspool01.news.tele.dk...
> > > Hvordan sætter jeg fokus på et af panelerne?
> >
> >
> > Hej Kristian
> >
> > Prøv med ditJPanel.requestFocus(); og læs API-dok. Der står meget godt
i.
> >
> > Mvh. Jacob
> >
> >
>
>



Kristian Erbou [7100~ (17-05-2002)
Kommentar
Fra : Kristian Erbou [7100~


Dato : 17-05-02 16:41

Har fundet ud af det - requestFocus() blev kaldt _før_ show() i den kode,
jeg havde lavet. Ved et kald til show() bliver fokus nulstillet, sådan som
jeg opfattede det og derfor virkede et kald til requestFocus() ikke, når der
kommer en efterfølgende show() på den JFrame, der rummer hele
brugergrænsefladen.

Ellers tak for hjælpen - det virker præcis som du sagde og præcis som API'en
allerede havde fortalt mig *s*

/ Kristian


"Jacob Vandborg" <fireman@linux.eucsyd.dk> wrote in message
news:3ce4a1a3$0$51097$edfadb0f@dspool01.news.tele.dk...
> Hej Kristian
>
> Har du prøvet at kalde isRequestFocusEnabled()....hvis den returnere
false,
> kan du prøve at kalde setRequestFocusEnabled(true).
>
> Jeg ved ikke om det virker, men du kan da prøve ad.
>
> Mvh. Jacob
>
> "Kristian Erbou [7100]" <erbou@hotmail.com> wrote in message
> news:3ce393b1$0$10896$ba624c82@nntp01.dk.telia.net...
> > Den er pløjet igennem indtil flere gange, men vi kan bare ikke komme ud
af
> > stedet... Problemet er, at vi er ved at lave et spil a la orm - det ene
> > panel indeholder en labyrint og selve ormen (det er selvfølgelig her,
> > tastaturets fokus skal være) og så et panel, der indeholder information
om
> > antal spiller, points osv... Fokus er på info-panelet og ikke
> spil-panelet.
> > Lidt kode følger:
> >
> > public class LabyrintGame extends JFrame
> > {
> > public LabyrintGame()
> > {
> > setSize(FRAMEWIDTH , FRAMEHEIGHT) ;
> > setTitle("Labyrint");
> > setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> > //setResizable(false);
> > Container contentPane = getContentPane();
> > contentPane.setLayout(null);
> >
> > gi = new GameInformation();
> > gb = new GameBoard(p, FRAMEWIDTH - 230, FRAMEHEIGHT);
> > gb.setBounds(0, 0, 600, 600);
> > gi.setBounds(630, 0, 210, 600);
> >
> > contentPane.add(gb);
> > contentPane.add(gi);
> >
> > gb.requestFocus(); //Virker af en eller anden underlig årsag ikke...
> > gb.addKeyListener(new KeyReader(p));
> >
> >
> >
> > show();
> > run();
> > }
> >
> >
> > Hvad f***** går der galt?
> >
> > Mvh Kristian
> >
> >
> > "Jacob Vandborg" <fireman@linux.eucsyd.dk> wrote in message
> > news:3ce35431$0$78772$edfadb0f@dspool01.news.tele.dk...
> > > > Hvordan sætter jeg fokus på et af panelerne?
> > >
> > >
> > > Hej Kristian
> > >
> > > Prøv med ditJPanel.requestFocus(); og læs API-dok. Der står meget godt
> i.
> > >
> > > Mvh. Jacob
> > >
> > >
> >
> >
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste