Avatar
Štěpán
Člen
Avatar
Štěpán:

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. června 21:14
Avatar
Atrament
Člen
Avatar
Odpovídá na Štěpán
Atrament:

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. června 23:00
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:

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. června 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:

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. července 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.