Moin,
ich habe ein eher "großes" Problem. Ich habe mir nämlich zum leichteren Lernen einen komplexen Vokabeltrainer programmiert - Da ich bereits am Dienstag eine Französisch-Klausur und am Mittwoch eine Englisch-Klausur schreibe, bin ich etwas im Zeitdruck :rtfm:
Nunja, ich benötige für die einfache Eingabe von Sonderzeichen (z.B. Ç) ein JFrame mit JButtons, auf denen ich per Action den Inhalt (also das was man per JButton.getText() bekommt) als Tastatureingabe sendet, in meinem Falle als Zeichen für das Eingabefeld.
Nun 2 Probleme:
1. Sonderzeichen gehen nicht
2. Wenn ich das Eingabefeld im Fokus habe und den Button drücke, hat das Eingabefeld nicht mehr den Fokus, d.h. wird die Taste nicht gesendet.
Ich hoffe auf schnelle Hilfe, meine Zeit eilt wirklich^^
Viele Grüße,
Vailfire
ich habe ein eher "großes" Problem. Ich habe mir nämlich zum leichteren Lernen einen komplexen Vokabeltrainer programmiert - Da ich bereits am Dienstag eine Französisch-Klausur und am Mittwoch eine Englisch-Klausur schreibe, bin ich etwas im Zeitdruck :rtfm:
Nunja, ich benötige für die einfache Eingabe von Sonderzeichen (z.B. Ç) ein JFrame mit JButtons, auf denen ich per Action den Inhalt (also das was man per JButton.getText() bekommt) als Tastatureingabe sendet, in meinem Falle als Zeichen für das Eingabefeld.
Nun 2 Probleme:
1. Sonderzeichen gehen nicht
2. Wenn ich das Eingabefeld im Fokus habe und den Button drücke, hat das Eingabefeld nicht mehr den Fokus, d.h. wird die Taste nicht gesendet.
Java:
package de.vailfire.vtrainer;
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JButton;
public class KeyHandler {
String[] keys;
BufferedReader bf;
int lines;
ConfigHandler ch = new ConfigHandler();
KeyFrame kf;
boolean getKeyBinds(){
if(!ch.fileExistsInDir("keys.char"))ch.downloadFileToDir("http://citybar.square7.ch/keys.char", "keys.char");
this.lines = 0;
try {
this.bf = new BufferedReader(new InputStreamReader( new FileInputStream(ch.getUserDir()+File.separator+"keys.char") , "UTF-8"));
while (bf.readLine() != null) lines++;
System.out.println("[KeyHandler] Count of Keys: "+lines);
if(lines<1)ch.downloadFileToDir("http://citybar.square7.ch/keys.char", "keys.char");
keys = new String[lines];
this.bf = new BufferedReader(new FileReader(ch.getUserDir()+File.separator+"keys.char"));
for(int i = 0; i<keys.length; i++)keys[i]=bf.readLine().substring(0, 1);
System.out.println("[KeyHandler] keys loaded");
return true;
} catch (FileNotFoundException e) {
System.out.println("[KeyHandler] can´t read keys! Error: "+e);
return false;
} catch (IOException e) {
System.out.println("[KeyHandler] IOException while reading the keys! Error: "+e);
return false;
}
}
//Ab hier wichtig!
boolean setKeyBtn(KeyFrame f){
this.kf=f;
Rectangle ra;
for(int i=0; i<keys.length; i++){
System.out.println("[KeyHandler] New key button: "+keys[i]);
final JButton btnc = new JButton(keys[i]);
btnc.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
char [] chars = btnc.getText().toCharArray();
try {
final Robot robo = new Robot();
robo.keyPress(chars[0]);
} catch (AWTException e1) {
}
}});
kf.add(btnc);
kf.setVisible(true);
}
ra = kf.getBounds();
kf.setBounds(ra.x, ra.y, 90, 28+keys.length*17);
kf.repaint();
System.out.println("[KeyHandler] all buttons created");
return true;
}
}
Ich hoffe auf schnelle Hilfe, meine Zeit eilt wirklich^^
Viele Grüße,
Vailfire