KeyStroke und Locale

Ravendark

Aktives Mitglied
Wenn ich einem MenuItem einen Tastenkürzel mit
Java:
KeyStroke.getKeyStroke('C', InputEvent.CTRL_DOWN_MASK);
zuweise, bekomme ich Strg+C. Da mein Programm mehrere Sprachen unterstützt, soll nun bei der Einstellung Englisch auch das
Tastenkürzel zu Ctrl+C geändert werden.
Habe es bisher mit
Java:
JFrame.setLocale(Locale.ENGLISH);
JMenuItem.setLocale(Locale.ENGLISH);
Locale.setDefault(Locale.ENGLISH);
probiert, allerdings bleibt es bei Strg+C.

Kann mir jemand helfen?
 
S

SlaterB

Gast
ist Strg+C nicht genau gleich Ctrl+C?
oder geht um irgendeinen angezeigten Text in der GUI?
 
S

SlaterB

Gast
um welchen Text geht es, Screenshot, Testprogramm?
ich weiß aber potentiell wenig dazu
 

Ravendark

Aktives Mitglied
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JFrame implements ActionListener {
	private JMenuItem item;
	
	public Test() {
		super("");
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		
		item = new JMenuItem("Item");
		item.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_DOWN_MASK));
		item.addActionListener(this);
		
		JMenu title = new JMenu("Title");
		title.add(item);
		
		JMenuBar menuBar = new JMenuBar();
		menuBar.add(title);
		setJMenuBar(menuBar);
		
		setSize(100, 75);
		setLocationRelativeTo(null);
	}
	
	@Override
	public void actionPerformed(ActionEvent event) {
		if(event.getSource() == item) {
			System.out.println("Event");
		}
	}
	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new Test().setVisible(true);
			}
		});
	}
}
Der Shortcut-Text vom MenuItem ist Strg+C, ich möchte allerdings wenn der Nutzer die Sprache ändert, sich der Shortcut-Text zu Ctrl+C ändert.
 
G

Gast2

Gast
Dann musst du bevor du das L&F setzt die Locale ändern:
Code:
Locale.setDefault(Locale.ENGLISH);
. Danach musst du deine ganze GUI neu aufbauen!!!
 

Ravendark

Aktives Mitglied
Recht herzlichen Dank, mal schauen wie ich es anstelle...vielleicht doch erst nach einem Neustart die Sprache ändern wenns zur Laufzeit nicht wirklich klappt.
 

Ähnliche Java Themen


Oben