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 居中显示还有什么方法? 展开
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 居中显示还有什么方法? 展开
3个回答
展开全部
面板实际上就是一个容器,之后可以任意在里面添加(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();
}
}
}
备注:需要特别注意的是移除和添加组件之后,记得重画组件。
例如单击某一个组件就移除这个组件,并且添加另外的组件,下面是一个具体的例子:
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();
}
}
}
备注:需要特别注意的是移除和添加组件之后,记得重画组件。
展开全部
你到底你想怎么实现?不仿具体说下.
Panel 是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内,这些组件包括其他面板。
面板的默认布局管理器是 FlowLayout 布局管理器。
panle只是一种容器,没有print方法.
你说一下你具体想怎么实现????说下你程序的逻辑结构.
Panel 是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内,这些组件包括其他面板。
面板的默认布局管理器是 FlowLayout 布局管理器。
panle只是一种容器,没有print方法.
你说一下你具体想怎么实现????说下你程序的逻辑结构.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
}
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);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询