一个网袋布局(GridBagLayout)的问题

feifei32 2004-09-17 03:17:58
import java.awt.*;
public class guitest6 extends Frame
{
public guitest6()
{
setTitle("网袋布局");
GridBagLayout layout=new GridBagLayout();
Panel p=new Panel(layout);
GridBagConstraints cons=new GridBagConstraints();
cons.gridx=100;
cons.gridy=100;
cons.gridwidth=1;
cons.gridheight=4;
cons.weightx=0;
cons.weighty=GridBagConstraints.RELATIVE;
Button b1=new Button("A");
layout.setConstraints(b1,cons);
p.add(b1);

cons.gridx=200;
cons.gridy=100;
cons.gridwidth=1;
cons.gridheight=1;
cons.weightx=0;
cons.weighty=0;
Button b2=new Button("B");
layout.setConstraints(b2,cons);
p.add(b2);

cons.gridx=200;
cons.gridy=125;
cons.gridwidth=1;
cons.gridheight=1;
cons.weightx=0;
cons.weighty=0;
Button b3=new Button("C");
layout.setConstraints(b3,cons);
p.add(b3);

cons.gridx=200;
cons.gridy=150;
cons.gridwidth=1;
cons.gridheight=1;
cons.weightx=0;
cons.weighty=0;
Button b4=new Button("D");
layout.setConstraints(b4,cons);
p.add(b4);

cons.gridx=200;
cons.gridy=175;
cons.gridwidth=1;
cons.gridheight=1;
cons.weightx=0;
cons.weighty=0;
Button b5=new Button("E");
layout.setConstraints(b5,cons);
p.add(b5);



add("Center",p);




}
public boolean handleEvent(Event evt)
{
if(evt.id==Event.WINDOW_DESTROY)System.exit(0);
return super.handleEvent(evt);

}

public static void main(String[] args)
{
guitest6 f=new guitest6();
f.resize(600,500);
f.setBackground(Color.white);
f.show();
}
}

想用GridBagLayout实现下面的按钮效果,那里不对,为什么?
----------------------
| ________________ |
| | | B | |
| | --------- |
| | | C | |
| | A --------- |
| | | D | |
| | --------- |
| | | E | |
| ---------------- |
|____________________|
...全文
225 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mail25 2004-09-22
  • 打赏
  • 举报
回复
把添加组件的方法改一下就好了


import java.awt.*;

public class test {

public static void main(String args[]) {
Frame f = new Frame(" GridBagLayout Simples");
GridBagConstraints c ;

f.setLayout(new GridBagLayout());

f.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
System.exit(0);
}
});

c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.gridheight = 4;
c.fill = GridBagConstraints.VERTICAL;
f.add(new Button("A"), c);

c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 0;
f.add(new Button("B"), c);

c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 1;
f.add(new Button("C"), c);

c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 2;
f.add(new Button("E"), c);

c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 3;
f.add(new Button("E"), c);

f.pack();
f.show();


}
}
feifei32 2004-09-22
  • 打赏
  • 举报
回复
bovy(★ 天道酬勤 ★) 你的我试过了,好像不行,mail25(随风飘) 的可以。难道awt就实现不了吗?
继续等待.....
bovy 2004-09-18
  • 打赏
  • 举报
回复
package com.boasoft;

import java.awt.Button;
import java.awt.Color;
import java.awt.Event;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Panel;

public class RadioButtonDemo extends Frame
{
public RadioButtonDemo()
{
setTitle("网袋布局");
GridBagLayout layout=new GridBagLayout();

Panel p=new Panel(layout);
GridBagConstraints cons=new GridBagConstraints();
cons.gridx=100;
cons.gridy=135; // modified here
cons.gridwidth=2;
cons.gridheight=4;
cons.weightx=0;
cons.weighty=GridBagConstraints.RELATIVE;
Button b1=new Button("A");
layout.setConstraints(b1,cons);
p.add(b1);

cons.gridx=200;
cons.gridy=100;
cons.gridwidth=1;
cons.gridheight=1;
cons.weightx=0;
cons.weighty=0;
Button b2=new Button("B");
layout.setConstraints(b2,cons);
p.add(b2);

cons.gridx=200;
cons.gridy=125;
cons.gridwidth=1;
cons.gridheight=1;
cons.weightx=0;
cons.weighty=0;
Button b3=new Button("C");
layout.setConstraints(b3,cons);
p.add(b3);

cons.gridx=200;
cons.gridy=150;
cons.gridwidth=1;
cons.gridheight=1;
cons.weightx=0;
cons.weighty=0;
Button b4=new Button("D");
layout.setConstraints(b4,cons);
p.add(b4);

cons.gridx=200;
cons.gridy=175;
cons.gridwidth=1;
cons.gridheight=1;
cons.weightx=0;
cons.weighty=0;
Button b5=new Button("E");
layout.setConstraints(b5,cons);
p.add(b5);



add("Center",p);




}
public boolean handleEvent(Event evt)
{
if(evt.id==Event.WINDOW_DESTROY)System.exit(0);
return super.handleEvent(evt);

}

public static void main(String[] args)
{
RadioButtonDemo f=new RadioButtonDemo();
f.resize(600,500);
f.setBackground(Color.white);
f.show();
}
}
//是要这个效果吗?建议你使用JPanel中来布局,就像HTML使用<table>来布局一样
Collection 2004-09-18
  • 打赏
  • 举报
回复
应该用JBuilder来创建就不用发愁布局的问题了
feifei32 2004-09-18
  • 打赏
  • 举报
回复
ding
mail25 2004-09-18
  • 打赏
  • 举报
回复
这个是你想要的效果啊!测试过没问题的

import javax.swing.*;
import java.awt.*;

public class test {

public static void main(String args[]) {
JFrame f = new JFrame(" GridBagLayout Simples");
GridBagConstraints c ;

f.getContentPane().setLayout(new GridBagLayout());

f.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
System.exit(0);
}
});

c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.gridheight = 4;
c.fill = GridBagConstraints.VERTICAL;
f.getContentPane().add(new JButton("A"), c);

c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 0;
f.getContentPane().add(new JButton("B"), c);

c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 1;
f.getContentPane().add(new JButton("C"), c);

c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 2;
f.getContentPane().add(new JButton("E"), c);

c = new GridBagConstraints();
c.gridx = 1;
c.gridy = 3;
f.getContentPane().add(new JButton("E"), c);

f.pack();
f.show();


}
}
mail25 2004-09-18
  • 打赏
  • 举报
回复
JBuilder是好用,但公司现在不用这东西,用EditPlus + JDK,就是在做GUI时比较痛苦
理想哥 2004-09-17
  • 打赏
  • 举报
回复
高手快来呀!!期待准确完整的答复。
feifei32 2004-09-17
  • 打赏
  • 举报
回复
ding
mail25 2004-09-17
  • 打赏
  • 举报
回复
这东东功能强,但不是很好用,特别是在不用IDE开发时,昨天为了一个布局折腾了一上午才搞好,看到它就头大!
bradwoo8621 2004-09-17
  • 打赏
  • 举报
回复
Insets insets = new Insets(5,5 ,5 , 5);
panel.add(a, new GridBagConstraints(0, 0, 1, 4, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insets, 0, 0));
panel.add(b, new GridBagConstraints(1, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insets, 0, 0));
panel.add(c, new GridBagConstraints(2, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insets, 0, 0));
panel.add(d, new GridBagConstraints(3, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insets, 0, 0));
panel.add(e, new GridBagConstraints(4, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insets, 0, 0));
feifei32 2004-09-17
  • 打赏
  • 举报
回复
ding
feifei32 2004-09-17
  • 打赏
  • 举报
回复
自己ding
【完整课程列表】 资源汇总下载地址:https://download.csdn.net/download/qq_27595745/55418618 Java SE编程入门教程 collection与collections(共7页).pptx Java SE编程入门教程 java GC(共6页).pptx Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 java object(共9页).pptx Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java SE编程入门教程 java封装继承多态(共56页).pptx Java SE编程入门教程 java集合(共38页).pptx Java SE编程入门教程 java接口(共21页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共56页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共62页).pptx Java SE编程入门教程 java判断循环(共79页).ppt Java SE编程入门教程 java入门以及变量debug(共63页).pptx Java SE编程入门教程 java设计模式(共17页).pptx Java SE编程入门教程 java数组(共33页).pptx Java SE编程入门教程 java网络编程(共29页).pptx Java SE编程入门教程 java线程(共61页).pptx Java SE编程入门教程 java序列化(共14页).pptx Java SE编程入门教程 java异常(共57页).pptx Java SE编程入门教程 java正则(共8页).pptx Java SE编程入门教程 properties(共3页).pptx Java SE编程入门教程 String字符串(共27页).pptx Java 位运算.docx java正则表达式例子大全 共10页.doc JAVA正则表达式实例教程 共17页.docx JAVA正则表达式实例教程 共17页.pdf 递归算法.docx 堆和栈.wps

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧