如何在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命名约定。如果它有助于解决问题,请联系我们。