日期:2014-05-20  浏览次数:20642 次

jframe布局的问题
我有10来个按扭要放在jfame上

button1 button2 button3
button4 button5 空 button6 
button7 button8 空 button9 空 button10
这样的格局摆放
不知道jframe的布局怎么设置,
请指教,不甚感激!

------解决方案--------------------
要么用gridlayout来要么用null布局然后设置坐标要么就用grouplayout来进行自由布局
------解决方案--------------------
用null布局然后设置坐标要用哪个方法
------解决方案--------------------
对你说的问题也不是很明白,我这有两个计算器的例子,一个是应用gridlayout,另一个是应用gridbaglayout的,希望能对你有所帮助,以下是程序代码:
import java.awt.*;
import java.awt.event.*;

public class Calculator2 extends WindowAdapter implements ActionListener {
private int result = 0, data1 = 0, radixPointDepth = 1;

private boolean radixPointIndicate = false;
private boolean resultIndicate = false; //是否显示

private char prec = '+';

private Frame f;

private TextField tf;

private Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14,
b15, b16;

Panel p;

static public void main(String args[]) {

new Calculator2().go();
}

public void go() {

f = new Frame("计算器_刘阳");

p = new Panel();
p.setLayout(new GridLayout(4, 4));
tf = new TextField(30);
b1 = new Button("7");
b2 = new Button("8");
b3 = new Button("9");
b4 = new Button("+");
b5 = new Button("4");
b6 = new Button("5");
b7 = new Button("6");
b8 = new Button("-");
b9 = new Button("1");
b10 = new Button("2");
b11 = new Button("3");
b12 = new Button("*");
b13 = new Button("0");
b14 = new Button(".");
b15 = new Button("=");
b16 = new Button("/");

f.add(tf, "North");
f.add(p, "Center");
p.add(b1);
p.add(b2);
p.add(b3);
p.add(b4);
p.add(b5);
p.add(b6);
p.add(b7);
p.add(b8);
p.add(b9);
p.add(b10);
p.add(b11);
p.add(b12);
p.add(b13);
p.add(b14);
p.add(b15);
p.add(b16);

b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);

f.addWindowListener(this);
f.setSize(200, 200);
f.setVisible(true);
//f.pack();
}

public void actionPerformed(ActionEvent e) {

String s;
s = e.getActionCommand();

switch (s.charAt(0)) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
if (resultIndicate) {
result = 0;
data1 = 0;
prec = '+';

}
Integer Int1 = new Integer(s);
if (radixPointIndicate) {
radixPointDepth = radixPointDepth / 10;
data1 = data1 + (Int1.intValue()) * radixPointDepth;
} else {
data1 = data1 * 10 + (Int1.intValue());
}
Double displayNumber = new Double(data1);
tf.setText(displayNumber.toString());
resultIndicate = false;
break;

case '+':
case '-':
case '*':