对于panel的重画用的是构造函数的重载,为什么new的新的panel上的组件无法显示?
两个panel加入到一个frame里,对其中一个panel做鼠标响应,用于刷新此panel,对于panel的重画用的是构造函数的重载,为什么new的新的panel上的组件...
两个panel加入到一个frame里,对其中一个panel做鼠标响应,用于刷新此panel,对于panel的重画用的是构造函数的重载,为什么new的新的panel上的组件无法显示?
程序如下:
package swing;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Swing2 {
public static Panel3 p;
public static JFrame frame;
public static void main(String[] args)
{
frame=new JFrame();
frame.setVisible(true);
frame.setSize(400,200);
frame.add(new Panel2());
p=new Panel3(2);
frame.add(p);
JButton button1=new JButton();
p.button.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
frame.remove(p);
p=new Panel3(1);
p.repaint();
frame.add(p);
frame.repaint();
}
});
frame.setLayout(null);
}
}
class Panel2 extends JPanel{
Panel2(){
setBounds(200,0,200,200);
setBackground(Color.blue);
}
}
class Panel3 extends JPanel{
public static JButton button;
Panel3(int n){
setBounds(0,0,200,200);
button=new JButton();
add(button);
if (n==1)
{
setBackground(Color.green);
}else
{
setBackground(Color.yellow);
}
}
} 展开
程序如下:
package swing;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Swing2 {
public static Panel3 p;
public static JFrame frame;
public static void main(String[] args)
{
frame=new JFrame();
frame.setVisible(true);
frame.setSize(400,200);
frame.add(new Panel2());
p=new Panel3(2);
frame.add(p);
JButton button1=new JButton();
p.button.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
frame.remove(p);
p=new Panel3(1);
p.repaint();
frame.add(p);
frame.repaint();
}
});
frame.setLayout(null);
}
}
class Panel2 extends JPanel{
Panel2(){
setBounds(200,0,200,200);
setBackground(Color.blue);
}
}
class Panel3 extends JPanel{
public static JButton button;
Panel3(int n){
setBounds(0,0,200,200);
button=new JButton();
add(button);
if (n==1)
{
setBackground(Color.green);
}else
{
setBackground(Color.yellow);
}
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询