|
| 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
> > >
> > >
> >
> >
>
>
| |
|
|