Java 我的名字有问题
这是我的代码:Java 我的名字有问题,java,Java,这是我的代码: 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 But
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;
}
}
导入java.awt.BorderLayout;
导入java.awt.Button;
导入java.awt.Color;
导入java.awt.GridLayout;
导入java.awt.Panel;
公共类键盘扩展了边框布局
{
公共面板p1=新面板();
公共按钮[]arr=新按钮[20];
公共字符串[]名称=
{
"9", "8", "7", "6", "5", "4", "3", "2", "1", "0",
“+”、“-”、“*”、“/”、“、cos”、“sin”、“=”、“pow”
};
公用键盘()
{
}
公共字符串[]getName()
{
返回名称;
}
public void setName(字符串[]名称)
{
this.name=名称;
}
公用面板键盘()
{
对于(int i=0;i
调用名称的字符串数组有问题。。。
如果我在代码处写这行:
this.arr[i]=新按钮(“boaz”)代码>
每个叫波阿斯的按钮。。。
但我想看看这个数组的按钮:
public String[]name={“9”、“8”、“7”、“6”、“5”、“4”、“3”、“2”、“1”、“0”、“0”、“+”、“-”、“*”、“/”、“、”、“、”、“、cos”、“sin”、“=”、“pow”}代码>
但当我写这行代码,将字符串放在按钮的名称处时:
this.arr[i]=新按钮(“+this.name[i])代码>
带按钮的面板不见了
我需要写什么,按钮将有数组名称字符串的名称?
代码行this.arr[i]=new按钮(“+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"};
}
类MyFrame扩展了JFrame{
公共MyFrame(){
setLayout(新的BorderLayout());
JPanel p1=新的JPanel();
p1.设置布局(新网格布局(6,6));
for(int i=0;i
您还有一些其他想法:
您的代码原样在Keyboard()方法的第一个for循环中有一个ArrayIndex异常,因为它检查arr[]变量的长度,但访问的名称[]var的大小较小
此外,我强烈建议您不要使用与类(和构造函数)同名的方法public Keyboard()
是类的构造函数,也不要有其他方法JPanel Keyboard()
。叫它别的什么,别的什么都行
您的代码使用awt类(面板、按钮)。学习swing类对应项(JPanel、JButton、JFrame等)。创建它们是为了使GUI构建任务更容易一些
最后,我不能向人们强调这一点。。。如果您是java中GUI构建的初学者,那么这些工具非常优秀。有很多示例代码可以供您学习。我写这行代码就像您写给我的public Panel p1=new Panel();公共按钮[]arr=新按钮[20];公共字符串[]名称={“9”、“8”、“7”、“6”、“5”、“4”、“3”、“2”、“1”、“0”、“+”、“-”、“*”、“/”、“、”、“、”、“、cos”、“sin”、““=”、“pow”};公共键盘(){for(int i=0;i