重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
修改后完整的代码
公司主营业务:网站设计制作、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出怀远免费做网站回馈大家。
编译通过~
import java.awt.*;
import java.awt.event.*;
public class TestGraphics extends Frame{
public void paint(Graphics g)
{
int x,y,i=0;
Font font=new Font("Serif",Font.ITALIC|Font.BOLD,40);
g.setFont(font);
g.drawOval(60,50,80,80);
g.setColor(Color.red);
g.fillOval(150, 50, 80, 80);
g.setColor(Color.pink);
g.drawOval(240, 50, 80, 80);
g.setColor(Color.green);
g.drawString("i love java", 80, 260);
g.setColor(Color.blue);
for(i=0;i20;i++)
{
x=(int)(Math.random()*300)+30;
y=(int)(Math.random()*200)+130;
g.fillOval(x, y, 10, 10);
}
g.setColor(Color.orange);
y=100;
for(i=0;i40;i++)
{
y+=5;
g.drawRect(30, 30, 320, y);
}
}
public static void main(String[] args)
{
TestGraphics f=new TestGraphics();
f.setTitle("我的第一个Graphics");
f.setSize(400,345);
f.setLocation(0,0);
f.setVisible(true);
f.addWindowListener( new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
System.exit(0);
}
});
}
}
首相调用组件的方法getComponents(),返回Component [] 里面包含了当前组件所添加的所有组件
然后遍历那个数组,删除所有的JButton类型的
举个例子
for(Component c:getComponents()){
if ( c instanceof JButton)
remove(c);
}
答: JFrame中, 可以通过 jframe.remove(组件) 方法删除指定的组件 ,也可以通过jframe.add(组件) 方法来添加新的组件 . 值得注意的是,添加和删除组件之后,都需要更新窗口 , 否则可能显示异常
效果图
jp1 里输入用户名, 不能为空
jp1里输入了用户名
jp1被删除,然后显示jp2
参考代码
import javax.swing.*;
import java.awt.event.*;
public class PanelFrame extends JFrame implements ActionListener {
JPanel jp1, jp2;
JTextField jtf;
JButton jb1;
JLabel jl2;
public PanelFrame() {
jp1 = new JPanel();
JLabel jl1 = new JLabel("请输入用户名");
jtf = new JTextField(8);
jb1 = new JButton("确定");
jb1.addActionListener(this);
jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb1);
add(jp1);
// 窗口属性设置
setTitle("Demo");// 标题
setSize(380, 180);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public static void main(String[] args) {
new PanelFrame().setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(jb1==e.getSource()) {
String name = jtf.getText().trim();
if(name.equals("")) {//验证是否输入了有效的字符串
JOptionPane.showMessageDialog(this, "请输入用户名~!");
return;
}
remove(jp1);//删除jp1
jp2 = new JPanel();
jl2 = new JLabel();
jp2.add(jl2);
jl2.setText("欢迎:"+name);
add(jp2);//添加jp2
SwingUtilities.updateComponentTreeUI(this);//更新窗口!!
}
}
}