小编use*_*204的帖子

Java - 在选择新的JTabbedPane时如何关注JTextArea

我有一个带有多个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更专注于标签更改?

这让我难过了一个星期,所以任何帮助都会感激不尽?

java swing focus jtextarea jtabbedpane

2
推荐指数
1
解决办法
5536
查看次数

Java - 多个if语句但只对最后一个语句起作用

我有一个简单的替换应用程序,用户输入一个字符串,该字符串被分为子串,然后每个字符替换一个数字.

我遇到的麻烦只是最后一组替换被采取行动,或者至少如果前两个正在工作它们被取消并返回"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)

java if-statement string-substitution

0
推荐指数
1
解决办法
112
查看次数