JAVA布局的设置问题

importjavax.swing.*;importjava.awt.*;publicclassexp4extendsJFrame{JPanelCacuLation;pu... import javax.swing.*;
import java.awt.*;

public class exp4 extends JFrame
{
JPanel CacuLation;
public exp4()
{

CacuLation=new JPanel();
CacuLation.setLayout(new FlowLayout());
caculation operation=new caculation();
this.setContentPane(CacuLation);
CacuLation.add(operation);
setTitle("计算器");
setSize(250,300);
setResizable(false);
setVisible(true);
setLocation(300,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
new exp4();
}

}
class caculation extends JPanel{

JTextField input;
JButton button,button1,button2,button3,button4,button5,
button6,button7,button8,button9;
public caculation ()
{

input=new JTextField(20);
button=new JButton("0");
button1=new JButton("1");
button2=new JButton("2");
button3=new JButton("3");
button4=new JButton("4");
button5=new JButton("5");
button6=new JButton("6");
button7=new JButton("7");
button8=new JButton("8");
button9=new JButton("9");
add(input);
add(button7);
add(button8);
add(button9);
add(button4);
add(button5);
add(button6);
add(button1);
add(button2);
add(button3);
}
}
为什么0-9的按钮在文本域后面而不是下一行啊
那该怎么设置Jpanel的大小呢?
展开
 我来答
希茜Cqa68
2009-05-18 · TA获得超过1238个赞
知道小有建树答主
回答量:860
采纳率:0%
帮助的人:1065万
展开全部
/**
*修改了一下,看是否满足你的需求
*/
import javax.swing.*;
import java.awt.*;

public class exp4 extends JFrame
{
public exp4()
{
//CacuLation=new JPanel();
//CacuLation.setLayout(new FlowLayout());
TextPane textPane=new TextPane();
textPane.setLayout(new FlowLayout());
ButtonPane buttonPane=new ButtonPane();
buttonPane.setLayout(new GridLayout(4,3));

//caculation operation=new caculation();
//this.setContentPane(CacuLation);
//CacuLation.add(operation);
this.getContentPane().add(textPane,BorderLayout.NORTH);
this.getContentPane().add(buttonPane,BorderLayout.CENTER);

setTitle("计算器");
setSize(250,300);
setResizable(false);
setVisible(true);
setLocation(300,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
new exp4();
}

}

class TextPane extends JPanel{
JTextField input;
public TextPane ()
{
input=new JTextField(20);
add(input);
}
}

class ButtonPane extends JPanel{
//JTextField input;
JButton button,button1,button2,button3,button4,button5,
button6,button7,button8,button9;
public ButtonPane()
{
//input=new JTextField(20);
button=new JButton("0");
button1=new JButton("1");
button2=new JButton("2");
button3=new JButton("3");
button4=new JButton("4");
button5=new JButton("5");
button6=new JButton("6");
button7=new JButton("7");
button8=new JButton("8");
button9=new JButton("9");
//add(input);
add(button7);
add(button8);
add(button9);
add(button4);
add(button5);
add(button6);
add(button1);
add(button2);
add(button3);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2b7708efc
2009-05-18
知道答主
回答量:35
采纳率:0%
帮助的人:0
展开全部
FlowLayout的布局方式就是自左向右,自上而下,如果JPanel宽度足够,那么按钮就是在文本域右边了,你可以减小JPanel的宽度,就可以看到结果了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-05-18
展开全部
把FlowLayout设置成FlowLayout(null),可以用setBounds对主键采用觉得定位,如button1.setBounds(20,20,20,20) ;前两个参数时设置主键在容器中得坐标,后两个是大小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式