我有一个带有多个JTabbedPanes 的swing GUI ; 每个选项卡JButtons在顶部包含两个,然后是a JTextArea(用于用户输入),并JTextField在底部包含结果.
我的问题是,JTextArea在没有用鼠标点击或使用键盘上的Tab键切换标签后,我无法获得焦点?
我有...
frame.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent e) {
textArea_1.requestFocusInWindow();
Run Code Online (Sandbox Code Playgroud)
...这在首次运行应用程序时效果很好(第一个选项卡中的textArea具有焦点)但是当我切换到另一个tabbedpane时,第一个按钮现在具有焦点而不是textArea,当我切换回第一个按钮时选项卡textArea失去焦点,第一个按钮再次具有焦点.
我已经尝试在每个textArea中添加一个requestFocus,并且我在每个textArea上尝试过"Bring to front",并且我已经搞乱了Focus Traversal,但我没有做任何事情似乎让textArea更专注于标签更改?
这让我难过了一个星期,所以任何帮助都会感激不尽?
我有一个简单的替换应用程序,用户输入一个字符串,该字符串被分为子串,然后每个字符替换一个数字.
我遇到的麻烦只是最后一组替换被采取行动,或者至少如果前两个正在工作它们被取消并返回"0".
因此,对于"abc"的输入,我需要输出"123"但是我得到"003",或者如果输入是"bcd",则输出应该是"234"但是我得到"004".
我哪里错了?
JButton button_1 = new JButton("Substitute");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String str = textField_1.getText();
String str0 = str.substring(0);
int val1 = 0;
if (str0.equalsIgnoreCase("a")) { val1 += 1; }
if (str0.equalsIgnoreCase("b")) { val1 += 2; }
if (str0.equalsIgnoreCase("c")) { val1 += 3; }
if (str0.equalsIgnoreCase("d")) { val1 += 4; }
String str1 = str.substring(1);
int val2 = 0;
if (str1.equalsIgnoreCase("a")) { val2 += 1; }
if (str1.equalsIgnoreCase("b")) { val2 += 2; }
if …Run Code Online (Sandbox Code Playgroud)