如何在Java中连接来自不同类的按钮和文本区域

如何在Java中连接来自不同类的按钮和文本区域,java,swing,jbutton,actionlistener,jtextarea,Java,Swing,Jbutton,Actionlistener,Jtextarea,我想做一个窗口,当你按下按钮时,它会在文本区域显示不同语言的短语“我爱你”。我只是不知道如何连接按钮中的文本区域。我有三节课。我尝试了很多我可以思考的方法,我也搜索了与此相关的东西,但我找不到任何有用的 import javax.swing.JFrame; import javax.swing.SwingUtilities; public class MainClass { public static void main(String[] args) {

我想做一个窗口,当你按下按钮时,它会在文本区域显示不同语言的短语“我爱你”。我只是不知道如何连接按钮中的文本区域。我有三节课。我尝试了很多我可以思考的方法,我也搜索了与此相关的东西,但我找不到任何有用的

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class MainClass {

    public static void main(String[] args) {
        
        SwingUtilities.invokeLater(new Runnable() {
        public void run()   {
                new MainFrame();
        }
    });
}
}



由于您正在
公共工具栏(JTextArea框架)
构造函数中调用
Button1.addActionListener
,因此应该调用此构造函数来调用其中的代码。但是,您正在调用
公共工具栏()
构造函数

要解决此问题,请执行以下操作:

    private ToolBar Tulbar = new ToolBar();
    private JTextArea textArea = new JTextArea();
    public ToolBar() {
       // ... STUFF 1 ...
    }
    
    public ToolBar(JTextArea frame) {
        // ... STUFF 2 ...
    }
你应该写:

    private JTextArea textArea = new JTextArea();
    private ToolBar Tulbar = new ToolBar(textArea);
    public ToolBar(JTextArea frame) {
        // ... STUFF 1 ...
        // ... STUFF 2 ...
    }
工具栏中
修复构造函数,而不是:

    private ToolBar Tulbar = new ToolBar();
    private JTextArea textArea = new JTextArea();
    public ToolBar() {
       // ... STUFF 1 ...
    }
    
    public ToolBar(JTextArea frame) {
        // ... STUFF 2 ...
    }
你应该写:

    private JTextArea textArea = new JTextArea();
    private ToolBar Tulbar = new ToolBar(textArea);
    public ToolBar(JTextArea frame) {
        // ... STUFF 1 ...
        // ... STUFF 2 ...
    }


请一直学习和使用它。您可能不认为这很重要,但我保证这将避免您犯愚蠢的错误,并节省您修复错误的时间。

1)代码在
Button4
中添加了两个动作侦听器,但在
Button6
中没有。2) 请学习常见的Java命名法(命名约定-例如
EachWordUpperCaseClass
firstWordLowerCaseMethod()
firstWordLowerCaseAttribute
,除非它是
大写常量
),并一致使用它。3)
公共类工具栏扩展了JPanel{
使用一个
JToolBar
。它就是为此而设计的!4)
私有JTextArea textArea=new JTextArea();…setSize(600600);
更好的
私有JTextArea textArea=new JTextArea(r,c);…pack();
,其中
r
是行数,
c
是最佳列数…..调用
pack()
会使GUI达到显示组件和(特定于PLAF/OS)所需的大小窗口装饰。5)为了更快地获得更好的帮助,添加or。缩短提示:2个按钮,而不是6。6)
公共类大型机扩展JFrame{
也不要扩展
JFrame
,只需使用一个实例。非常感谢。我将学习Java命名约定。如果它有助于解决问题,请联系我们。