Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Štěpán
Člen
Avatar
Štěpán:28.6.2016 21:14

Ahoj, už hodiny se mořím s jedním primitivním problémem. Mám v JFramu JButton a JTextPane. No a chci po zadání textu (když pořád můžu psát) a stisknutí klávesy Enter aktivovat ten JButton. PS: Když stisknu Enter teď, JTextPane mě přesměruje na další řádek.

 
Odpovědět
28.6.2016 21:14
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Štěpán
Atrament:28.6.2016 23:00

Pověs na ten JTextPane pomocí addKeyListener() KeyAdapter ve kterém overridneš metodu keyReleased. No a v téhle metodě proveď něco takovéhohle:

@Override
public void keyReleased(KeyEvent e) {
  super.keyReleased(e); //pošleš keyEvent rodičovi, takže budeš moct normálně psát
  if (e.getKeyCode() == KeyEvent.VK_ENTER) {
  //tady můžeš provést nějakou akci co se spustí vždycky, když bude stisknuto Enter
  //třeba aktivovat ten button
  }
}
 
Nahoru Odpovědět
28.6.2016 23:00
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:30.6.2016 22:09

A jen taková drobnůstka...
Z tvého textu soudím, že ani nechceš odřádkovávat, proč tedy nepoužiješ rovnou JTextField?
A jinak já bych to udělal více objektověji. Tu událost, kterou máš v JButtonku bych z tama přímo smazal a udělal si novou metodu (for example doSomething() ) a tuto metodu bych volal jak v JButtonu, tak i v klávesovém posluchači, jak ti to tu napsal Atrament. Není moc šikovné něco v nějaké komponentě napsat a pak to od jinud volat.

Nahoru Odpovědět
30.6.2016 22:09
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Štěpán
Člen
Avatar
Štěpán:1.7.2016 1:47

Díky moc za tipy, změnil jsem to tedy na JTextField, a potom jen stačilo napsat toto:
'window.getRo­otPane().setDe­faultButton(con­firm);'

 
Nahoru Odpovědět
1.7.2016 1:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.