java 窗口中文本框和按钮会相互覆盖

importjavax.swing.*;importjava.awt.*;importstaticjavax.swing.JFrame.*;publicclassWind... import javax.swing.*;
import java.awt.*;
import static javax.swing.JFrame.*;
public class Window extends JFrame{
JMenuBar menubar;
JMenu menu;
JMenuItem item;
JTextField text;
JButton but;
public Window(String s,int x,int y,int w,int h){
init(s);
setLocation(x,y);
setSize(w,h);
setVisible(true);
}
void init(String s){
setTitle(s);
menubar = new JMenuBar();
menu = new JMenu("菜单");
item = new JMenuItem("菜单项",new ImageIcon("a.gif"));
menu.add(item);
text = new JTextField("跳梁",10);
text.setHorizontalAlignment(JTextField.CENTER);
but = new JButton("按钮");

add(text);
add(but);
setJMenuBar(menubar);
menubar.add(menu);
}
}
1
展开
 我来答
liuyfly
2013-11-14 · TA获得超过227个赞
知道小有建树答主
回答量:179
采纳率:100%
帮助的人:171万
展开全部
init方法里添加一行代码

this.setLayout(new FlowLayout());

放到第一行就好了。
更多追问追答
追问
很多窗口开始是
import javax.swing.*;
import java.awt.*;
importjava.awt.event.*;
import static javax.swing.JFrame.*;
这里第三行
importjava.awt.event.*;没有被第二行包括吗?
追答
当然。import java.awt.*,表示引入java.awt包下的所有的类,但是不包括java.awt的子包。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
X_earth
2013-11-14 · TA获得超过248个赞
知道小有建树答主
回答量:204
采纳率:73%
帮助的人:63万
展开全部
java.awt.*包含的是awt包下的所有类文件,而event是awt包下的一个包,所以要用到事件,还必须写import java.awt.event.*
追问
add(but,“SOUTH”)

这个写法正确吗?我书上写的是add(but,SOUTH)
前面还要加一个import语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
302652034_bai
2013-11-14 · TA获得超过4144个赞
知道大有可为答主
回答量:2206
采纳率:66%
帮助的人:1512万
展开全部
因为JFram的默认布局方式,会将添加在中部的控件自动填满窗口没有被利用的空间
更多追问追答
追问
如何破
追答
设置按钮填充东南西北其他方面的的任意位置,应为你的文本框是在中部的,这样就不会覆盖。
add(but,“SOUTH”)

或者将窗口的布局方式改变,用其他布局方式如:流式布局
将布局方式设置为null,调用组建的setbounds 来设置组建大小和位置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式