gpt4 book ai didi

java - 我的按钮名称有问题

转载 作者:行者123 更新时间:2023-12-02 08:25:53 25 4
gpt4 key购买 nike

这是我的代码:

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Panel;

public class Keyboard extends BorderLayout
{
public Panel p1 = new Panel();
public Button[] arr = new Button[20];
public String[] name =
{
"9", "8", "7", "6", "5", "4", "3", "2", "1", "0",
"+", "-", "*", "/", ".", "cos", "sin", "=", "pow"
};

public Keyboard()
{
}

public String[] getName()
{
return name;
}

public void setName(String[] name)
{
this.name = name;
}

public Panel Keyboard()
{
for (int i = 0; i < arr.length; i++)
{
this.arr[i] = new Button("" + this.name[i]);
}


this.p1.setLayout(new GridLayout(6, 6));

for (int i = 0; i < arr.length; i++)
{
this.arr[i].setBackground(Color.LIGHT_GRAY);
this.arr[i].setForeground(Color.BLUE);
this.p1.add(this.arr[i]);
}
this.p1.setBackground(Color.green);
return this.p1;
}
}

调用 name 的字符串数组有问题...如果我在代码中写下这一行:this.arr[i]=new Button("boaz");每个按钮都叫 boaz...但我想在按钮上看到这个数组:

public String[] name = {"9","8","7","6","5","4","3","2","1","0","+","-","*","/",".","cos","sin","=","pow"};

但是当我编写此行以将字符串放在按钮名称处时:

this.arr[i]=new Button(""+this.name[i]);

带有按钮的面板消失了

我需要写什么才能使按钮具有数组名称字符串的名称?代码行 this.arr[i]=new Button(""+this.name[i]); 不起作用...

最佳答案

首先,我不确定你为什么要扩展 BorderLayout。在没有看到你的申请的其余部分的情况下,我在这里猜测。但是,如果您希望在面板中显示计算器按钮,更简单的方法是使用一个框架,其中包含一个包含按钮网格的面板。像这样的事情:

class MyFrame extends JFrame{
public MyFrame() {
setLayout(new BorderLayout() );
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(6, 6) );

for (int i = 0; i < name.length; i++) {
JButton btn = new JButton(name[i]);
p1.add(btn);
}

add(p1, BorderLayout.CENTER);
}

private static final String[] name = {"9","8","7","6","5","4","3","2","1","0",
"+","-","*","/",".","cos","sin","=","pow"};
}

还有一些其他的想法供您引用:您的代码在 Keyboard() 方法的第一个 for 循环中存在 ArrayIndex 异常,因为它检查 arr[] 变量的长度,但访问的 name[] var 具有较小的大小。

此外,我强烈建议您不要使用与类(和构造函数)同名的方法。 public Keyboard() 是类的构造函数,也没有其他方法 JPanel Keyboard() 。称其为其他名称,其他任何名称。

您的代码使用 awt 类(面板、按钮)。学习 Swing 类的对应部分(JPanel、JButton、JFrame 等)。创建它们是为了使 GUI 构建任务更容易一些。

最后,我无法向人们强调这一点...... online Swing tutorials如果您是用 java 构建 GUI 的初学者,那么这本书非常好。有很多示例代码可供您学习。

关于java - 我的按钮名称有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com