这是我的代码:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Maapp extends Applet implements ActionListener
{
private int flag=0;
Panel p1=new Panel();
Panel p2=new Panel();
Button[] arr=new Button[12];
TextField textf=new TextField("",25);
public void init()
{
this.setLayout(new BorderLayout());
this.p2.setBackground(Color.DARK_GRAY);
this.p2.setLayout(new GridLayout(2,30));
textf.setBackground(Color.BLACK);
textf.setForeground(Color.YELLOW);
this.p1.setLayout(new GridLayout(4,10));
p2.add(textf);
for(int i=0; i<10 ;i++)
{
arr[i]=new Button(""+i);
arr[i].setForeground(Color.WHITE);
arr[i].setBackground(Color.DARK_GRAY);
p1.add(arr[i]);
this.arr[i].addActionListener(this);
}
arr[10]=new Button("=");
p1.add(arr[10]);
arr[10].setPreferredSize(new Dimension(20,40));
this.arr[10].addActionListener(this);
this.add(p2,BorderLayout.NORTH);
this.add(p1,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent arg0)
{
for(int i=0;i<10;i++)
{
if(arg0.getSource()==arr[i])
{
this.textf.setText(this.textf.getText()+i);
}
}
}
}
我想调整其中一个按钮的大小。 我试着写:
arr[10].setPreferredSize(new Dimension(20,40));
它不起作用。 我试着写:
arr[10].resize(10,20);
它不起作用。
那么如何调整按钮arr[10]
的大小?
答案 0 :(得分:1)
尝试设置按钮的最小和最大尺寸。您正在使用的布局管理器可能无法遵循首选大小。
答案 1 :(得分:1)
对于按钮面板,您指定了GridLayout
,忽略了首选大小。作为替代方案,您可以使用GridBagLayout
或MigLayout
,它们可以跨列。
附录:请注意,您可以在GridLayout
中指明任意数量的行或列。在您的示例中,这将表示具有所需行数的三列:
this.p1.setLayout(new GridLayout(0, 3));