import java.awt.*;
import java.awt.event.*;public class CoppyStringToLabel extends Frame implements ActionListener
{
private Label label = new Label();
private TextField field = new TextField();
private Button b = new Button("复制"); private class WindowCloser extends WindowAdapter
{
public void windowClosing(WindowEvent we)//guan bi chuang kou
{
System.exit(0);
}
}
public CoppyStringToLabel()
{
super("拷贝标签(字符)");
setup();//shezhi b.addActionListener(this);
addWindowListener(new WindowCloser()); }
public void actionPerformed (ActionEvent e)
{
if (e.getSource() == b)
label.setText(field.getText()); }
private void setup()
{
Panel textGrid = new Panel(); textGrid.setLayout(new BorderLayout());
textGrid.add(label); textGrid.add(field);
setLayout(new BorderLayout());
add("Center",textGrid);
add("south",b);
pack();
}
public static void main(String[] args)
{
CoppyStringToLabel a = new CoppyStringToLabel();
}
}
这个是书上的例子我试着编译通过但运行不通过
Exception in thread "main" java.lang.IllegalArgumentException: cannot add to lay
out: unknown constraint: south
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:446)
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:407)
at java.awt.Container.addImpl(Container.java:1058)
at java.awt.Container.add(Container.java:364)
at CoppyStringToLabel.setup(CoppyStringToLabel.java:51)
at CoppyStringToLabel.<init>(CoppyStringToLabel.java:24)
at CoppyStringToLabel.main(CoppyStringToLabel.java:58)
请按任意键继续. . .所以我就进行了一下修改
虽然运行通过了
我还不太明白为什么这样改..
我想把文本框的大小调整应该在哪个位置添如代码,,
我试着调试没有得到自己想要的结果
请高手 帮忙看看..感激不尽...
import java.awt.*;
import java.awt.event.*;public class CoppyStringToLabel extends Frame implements ActionListener
{
private Label label = new Label();
private TextField field = new TextField();
private Button b = new Button("复制"); private class WindowCloser extends WindowAdapter
{
public void windowClosing(WindowEvent we)//guan bi chuang kou
{
System.exit(0);
}
}
public CoppyStringToLabel()
{
super("拷贝标签(字符)");
setup();//shezhi b.addActionListener(this);
addWindowListener(new WindowCloser()); }
public void actionPerformed (ActionEvent e)
{
if (e.getSource() == b)
label.setText(field.getText()); }
private void setup()
{
Panel textGrid = new Panel(); textGrid.setLayout(new FlowLayout());
textGrid.add(label); textGrid.add(field);
setLayout(new FlowLayout());
add("Center",textGrid);
add("south",b);
pack();
}
public static void main(String[] args)
{
CoppyStringToLabel a = new CoppyStringToLabel();
}
}
import java.awt.event.*;public class CoppyStringToLabel extends Frame implements ActionListener
{
private Label label = new Label();
private TextField field = new TextField();
private Button b = new Button("复制"); private class WindowCloser extends WindowAdapter
{
public void windowClosing(WindowEvent we)//guan bi chuang kou
{
System.exit(0);
}
}
public CoppyStringToLabel()
{
super("拷贝标签(字符)");
setup();//shezhi b.addActionListener(this);
addWindowListener(new WindowCloser()); }
public void actionPerformed (ActionEvent e)
{
if (e.getSource() == b)
label.setText(field.getText()); }
private void setup()
{
Panel textGrid = new Panel(); textGrid.setLayout(new BorderLayout());
textGrid.add(label); textGrid.add(field);
setLayout(new BorderLayout());
add("Center",textGrid);
add("south",b);
pack();
}
public static void main(String[] args)
{
CoppyStringToLabel a = new CoppyStringToLabel();
}
}
这个是书上的例子我试着编译通过但运行不通过
Exception in thread "main" java.lang.IllegalArgumentException: cannot add to lay
out: unknown constraint: south
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:446)
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:407)
at java.awt.Container.addImpl(Container.java:1058)
at java.awt.Container.add(Container.java:364)
at CoppyStringToLabel.setup(CoppyStringToLabel.java:51)
at CoppyStringToLabel.<init>(CoppyStringToLabel.java:24)
at CoppyStringToLabel.main(CoppyStringToLabel.java:58)
请按任意键继续. . .所以我就进行了一下修改
虽然运行通过了
我还不太明白为什么这样改..
我想把文本框的大小调整应该在哪个位置添如代码,,
我试着调试没有得到自己想要的结果
请高手 帮忙看看..感激不尽...
import java.awt.*;
import java.awt.event.*;public class CoppyStringToLabel extends Frame implements ActionListener
{
private Label label = new Label();
private TextField field = new TextField();
private Button b = new Button("复制"); private class WindowCloser extends WindowAdapter
{
public void windowClosing(WindowEvent we)//guan bi chuang kou
{
System.exit(0);
}
}
public CoppyStringToLabel()
{
super("拷贝标签(字符)");
setup();//shezhi b.addActionListener(this);
addWindowListener(new WindowCloser()); }
public void actionPerformed (ActionEvent e)
{
if (e.getSource() == b)
label.setText(field.getText()); }
private void setup()
{
Panel textGrid = new Panel(); textGrid.setLayout(new FlowLayout());
textGrid.add(label); textGrid.add(field);
setLayout(new FlowLayout());
add("Center",textGrid);
add("south",b);
pack();
}
public static void main(String[] args)
{
CoppyStringToLabel a = new CoppyStringToLabel();
}
}
add("south",b);Exception in thread "main" java.lang.IllegalArgumentException: cannot add to lay
out: unknown constraint: south
未知常量嘛,实施BorderLayout.SOUTH或者类似的有时候布局管理器会使得设置控件大小无效,可以事事多个boxlayout来达到效果
import java.awt.event.*; class CoppyStringToLabel extends Frame implements ActionListener
{
private Label label = new Label();
private TextField field = new TextField();private Button b = new Button("复制");private class WindowCloser extends WindowAdapter
{
public void windowClosing(WindowEvent we)//guan bi chuang kou
{
System.exit(0);
}
}
public CoppyStringToLabel()
{
super("拷贝标签(字符)");
setup();//shezhib.addActionListener(this);
addWindowListener(new WindowCloser());}
public void actionPerformed (ActionEvent e)
{
if (e.getSource() == b)
label.setText(field.getText());}
private void setup()
{
Panel textGrid = new Panel();textGrid.setLayout(new FlowLayout());textGrid.add(label);
//加上这两行
Dimension d =new Dimension(60,100);
field.setPreferredSize(d);textGrid.add(field);
setLayout(new FlowLayout());
add("Center",textGrid);
add("south",b);
setVisible(true);
pack();
}
public static void main(String[] args)
{
CoppyStringToLabel a = new CoppyStringToLabel();
}
}
其中的控件管理已经交给了布局管理器,该布局管理器会自动调用控件的setPreferredSize()方法来决定该控件的大小,也就是说要改变控件大小必须自己重设setPreferredSize(),方法如下:
Dimension d =new Dimension(590,100);
recordPane.setPreferredSize(d);