java中panel 面板的问题

创建并显示一个标题为“包含面板的Frame”,背景色为绿色,大小为800×800的框架。在该框架的中间位置放置一个颜色为黑色、大小为200×200的面板。在该面板中放置一... 创建并显示一个标题为“包含面板的Frame”,背景色为绿色,大小为800×800的框架。在该框架的中间位置放置一个颜色为黑色、大小为200×200的面板。在该面板中放置一个按钮,按钮中显示“请点击我”。
import java.awt.*;
public class KY9_2
{
public static void main (String args[])
{
Frame f=new Frame("包含面板的Frame");
Panel pan=new Panel();
Button b=new Button("请点击我");
b.setVisible(true);
b.setLocation(100,100);
f.setSize(800,800);
f.setBackground(Color.green);
f.setLayout(null);
pan.setSize(200,200);
pan.setBackground(Color.black);
f.add(pan);
pan.setLocation(300,300);
f.setVisible(true);
}
}
button 不显示是为什么?让panel 居中显示还有什么方法?
展开
 我来答
198901245631
2015-11-08 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1736万
展开全部
面板实际上就是一个容器,之后可以任意在里面添加(add)或者删除(remove)内容。
例如单击某一个组件就移除这个组件,并且添加另外的组件,下面是一个具体的例子:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class WinTest3
{
public static void main(String[] args)
{

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setLayout(new FlowLayout());
JPanel panel = new JPanel();
JButton button = new JButton("change");
panel.add(button);
JTextField f = new JTextField(20);
ActionListener listener = new ChangeListener(button,panel,f);
button.addActionListener(listener);//注册监听器
frame.add(panel);
frame.setVisible(true);

}
}
/*监听器,当单击按钮时,移除button按钮,加入text文本框*/
class ChangeListener implements ActionListener
{
JButton button;
JPanel panel;
JTextField text;
public ChangeListener(JButton button, JPanel panel, JTextField text)
{
super();
this.button = button;
this.panel = panel;
this.text = text;
}

@Override
public void actionPerformed(ActionEvent e)
{
if("change".equals(e.getActionCommand()))
{
panel.remove(button);
panel.add(text);
panel.updateUI();
panel.repaint();
}
}

}
备注:需要特别注意的是移除和添加组件之后,记得重画组件。
gdoaoes
2011-05-24 · TA获得超过550个赞
知道答主
回答量:610
采纳率:100%
帮助的人:0
展开全部
你到底你想怎么实现?不仿具体说下.
Panel 是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内,这些组件包括其他面板。

面板的默认布局管理器是 FlowLayout 布局管理器。
panle只是一种容器,没有print方法.
你说一下你具体想怎么实现????说下你程序的逻辑结构.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘苏伟00
2011-05-20
知道答主
回答量:9
采纳率:0%
帮助的人:6.9万
展开全部
import java.awt.*;
public class aa
{
public static void main (String args[])
{
Frame f=new Frame("包含面板的Frame");
Panel pan=new Panel();
Button b=new Button("请点击我");
b.setVisible(true);
b.setLocation(100,200);
f.setSize(800,800);
f.setBackground(Color.green);
f.setLayout(null);
pan.setSize(200,200);
pan.setBackground(Color.black);
pan.add(b); //差这一句。。
f.add(pan);
pan.setLocation(300,300);
f.setVisible(true);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式