JAVA JPanel里怎么添加组件?

如题。我的程序里有JButtonb=newJButton("ok");JPanelp=newJPanel(newBoxLayout(getContentPane(),Bo... 如题。
我的程序里有
JButton b=new JButton("ok");
JPanel p=new JPanel(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS));
p.add(b);
结果编译说 ^ ^
需要标识符

怎么回事?谢谢啦!
我试过了,但还是不可以。

郁闷ing...
全部程序如下:

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class J_game extends JApplet implements ActionListener
{ JLabel mz_Label=new JLabel(null,null,JLabel.LEFT);
JButton b=new JButton("ok");
JPanel p=new JPanel(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS));
p.add(b);
......
getContentPane().add(m_Label,BorderLayout.CENTER);
getContentPane().add(mc_Label,BorderLayout.SOUTH);
getContentPane().add(mz_Label,BorderLayout.NORTH);
getContentPane().add(p,BorderLayout.CENTER);
展开
 我来答
198901245631
2015-11-08 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1725万
展开全部
可以用add添加组件,然后调用JPanel的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();
}
}

}
备注:需要特别注意的是移除和添加组件之后,记得重画组件。
mafeng111
2007-09-10 · TA获得超过260个赞
知道小有建树答主
回答量:247
采纳率:100%
帮助的人:210万
展开全部
在JPanel p=new JPanel(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS)); 下面添一句:
this.getContentPane.add(p,BorderLayout.CENETR),而不应该把它写在p.add(b)下面,因为JPanel是中间容器,必须要先加到窗体等容器才可以向里面添加组件.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nanwang21
2015-10-14 · TA获得超过2943个赞
知道大有可为答主
回答量:1220
采纳率:82%
帮助的人:240万
展开全部
JPanel是中间容器,要先加载到窗体等容器后才可以向里面添加组件。必须把this.getxxx()此句代码添加放到实例JPanel的代码下一句,
示例代码:
JPanel p=new JPanel(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS));
this.getContentPane.add(p,BorderLayout.CENETR);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ksca00809106
2007-09-11 · 超过20用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:0
展开全部
p.add(b)应该放到方法或构造函数里面如
J_game { \\构造函数
p.add(b);
这样就没问题了!
楼主给分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hotpetersun
2007-09-10 · TA获得超过165个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:205万
展开全部
import javax.swing.table.*;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
引用这几个包
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式