我开始用GUI制作Java计算器,但我遇到了一个问题。我是Java新手,如果我的问题很愚蠢,我很抱歉。我想知道如何正确地为Action Listener编写代码,这样我就可以按下一个按钮,并将该按钮上的文本显示在文本区域中。所有评论都是我试图做的,但没有成功。
package calculator;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class GUI extends JFrame {
JButton Radical;
JButton ImpartireLa1;
JButton Inmultire;
JButton Impartire;
JButton Scadere;
JButton Adunare;
JButton Egal;
JButton Zero;
JButton Sapte;
JButton Opt;
JButton Noua;
JButton Sase;
JButton Cinci;
JButton Patru;
JButton Trei;
JButton Doi;
JButton Unu;
StringBuilder tex;
JTextField display;
JLabel lol;
GUI (){
setTitle("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(1400,800);
this.setLayout(null);
Radical = new JButton("rad");
Radical.setBounds(100,100,60,60);
ImpartireLa1= new JButton("1/x");
ImpartireLa1.setBounds(200,100,60,60);
Inmultire= new JButton("*");
Inmultire.setBounds(300,100,60,60);
Impartire= new JButton("/");
Impartire.setBounds(400,100,60,60);
Scadere= new JButton("-");
Scadere.setBounds(500,100,60,60);
Adunare= new JButton("+");
Adunare.setBounds(500,200,60,60);
Egal= new JButton("=");
Egal.setBounds(500,300,60,60);
Sapte= new JButton("7");
Sapte.setBounds(100,200,80,80);
Opt= new JButton("8");
Opt.setBounds(230,200,80,80);
Noua= new JButton("9");
Noua.setBounds(360,200,80,80);
Patru= new JButton("4");
Patru.setBounds(100,300,80,80);
Cinci= new JButton("5");
Cinci.setBounds(230,300,80,80);
Sase= new JButton("6");
Sase.setBounds(360,300,80,80);
Unu= new JButton("1");
Unu.setBounds(100,400,80,80);
Doi= new JButton("2");
Doi.setBounds(230,400,80,80);
Trei= new JButton("3");
Trei.setBounds(360,400,80,80);
Zero= new JButton("0");
Zero.setBounds(480,400,80,80);
this.setLayout(null);
display= new JTextField();
display.setBounds(100,10, 465, 45);
add(Trei); add(Doi);add(Unu);add(Patru);add(Cinci); add(Sase);add(Sapte);add(Opt);add(Noua);add(Radical);add(ImpartireLa1);add(Inmultire); add(Impartire);add(Adunare);add(Scadere);add(Egal); add(Zero);add(display);setVisible(true);
class Patru implements ActionListener {
public void actionPerformed(ActionEvent e) {
//String s= text.getText()+ Patru.getText();
//text.setText(s);
/// text.setText( getText(4) );
/*JButton Patru = (JButton)e.getSource();
if(Patru.getText().equals("4"))
display.setText("");
lol.setVisible(true); */
/*if(e.getSource() == Patru)
{
String s = "4";
display.setText(s);
}*/
/* JButton Patru = (JButton)e.getSource();
String text = Patru.getText();
Object tex;
if (text.equals("4")) {
doMath math = new doMath();
int result = math.doMath1(tex.toString());
tex = new StringBuilder(32);
} else {
((StringBuilder) tex).append(text);
}*/
/* String text = "4";
if(e.getSource() == Patru)
{
text += "4";
display.setText(text);
}
}*/
}
}
class Cinci implements ActionListener{
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
public void ActionPerformed(ActionEvent e1)
{
String s1= display.getText()+ Cinci.getText();
display.setText(s1);
}
}
}
public static void main(String[] args)
{
GUI Calculator= new GUI();
}
}
首先:在构造函数方法之外定义ActionListener
类。
第二:将您的ActionListener
实例添加到您的每个JButton
Radical.addActionListener(new Patru());
第三:像这样实现actionPerformed
方法:
public void actionPerformed(ActionEvent e) {
JButton src = (JButton)e.getSource();
display.setText(src.getText());
}
答案相当简单:
>
button.setText("sometext")
设置,并且可以使用String content=button.getText()
来查询相同的文本。公共类GUI扩展JFrame实现ActionListener{
您只需将实现ActionListener添加到现有行中。button.addActionListener(this)
将ActionListener添加到您的按钮注意:在创建新的Button对象之后立即添加Action Listener非常重要。您需要做的最后一件事是告诉ActionListener在单击按钮时应该做什么。所以您需要在GUI类中创建一个方法:
@凌驾
已执行的公共无效行动(行动事件e){
textfield.set文本(button.get文本());
}
这基本上就是当你点击一个按钮时,你需要改变JTextField中文本的全部内容。
早上好。因为我的flatButton已被弃用,所以我尝试将其转换为TextButton。但是现在不行了。 这是我的工作平面按钮代码: 这是转换为Textbutton的代码:
我是一个新手,我正在尝试创建一个应用程序来在我的投资组合中使用。本质上,该程序是一个可以访问不同菜单的菜单(json文件:texas_pick.js,Breakth.js…),该程序旨在以按钮的形式显示菜单选项,按钮的详细信息从各自的json文件中检索。我面临的问题是,单击菜单选项时,会检索最后一个菜单项的数据。我将后端编程为只将商品名称和价格推送到数据库,而前端则检索这些数据并将其显示在表上。检
目前正在学习我自己 JavaFX。 我使用场景生成器创建了一个带有按钮和文本字段的简单场景。 为什么我不能点击按钮,并从文本字段中获取文本? FXML代码是:
!define MUI_PAGE_CUSTOMFUNCTION_SHOW "CompShowProc" !insertmacro MUI_PAGE_COMPONENTS ;组件选择页面 Function "CompShowProc" GetDlgItem $R0 $HWNDPARENT 1 SendMessage $R0 ${WM_SETTEXT} 0 `STR:小黑` ;下一步按键
如果我按下呼叫按钮,我会得到一个错误,即出租车没有呼叫,而是转到另一个窗口。 我认为这个错误来自实时数据库。如果你有不同的意见,写下你的答案。 错误:E/AndroidRuntime:致命异常:主进程:com。实例乌兹别克斯坦,PID:8915爪哇。lang.NullPointerException:尝试调用虚拟方法“double android”。地方地方getLatitude()'位于com上
在我的APCS课程中,我们正在学习如何编写GUI。我们已经学习了如何制作按钮和将背景色改为绿色、红色、蓝色等。然而,我的老师在这周剩下的时间里不会在这里,我只是好奇如何通过单击按钮使文本出现在框架内,并在再次单击按钮时使文本消失。如果有帮助,下面是代码。我想改变背景颜色为绿色以及显示“绿色”在屏幕上。非常感谢你的帮助! }