很奇怪的一个Java swing问题
很奇怪的一个Javaswing问题importjava.awt.*;importjavax.swing.*;importjavax.imageio.*;importjav...
很奇怪的一个Java swing问题import java.awt.*;
import javax.swing.*;
import javax.imageio.*;
import java.awt.event.*;
public class Test2{
JFrame frame;
JButton button;
JPanel panel;
JTextField text;
JLabel label;
ImageIcon image;
public Test2(){
frame=new JFrame();
frame.getLayeredPane().setLayout(null);
frame.getLayeredPane().add(label=new JLabel(image=new ImageIcon("c://Test.jpg")));
label.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
JPanel panel=(JPanel)frame.getContentPane();
panel.setLayout(new FlowLayout());
panel.add(button=new JButton("draw"));
frame.setSize(image.getIconWidth(),image.getIconHeight());
frame.setVisible(true);
frame.validate();
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
panel.repaint();
}
});
}
public static void main(String[] agrs){
new Test2();
}
}
首先,我给frame的layered窗格添加了一个含有图片的标签,然后再将frame的内容窗格强制转换为一个panel,再往这个panel里面添加一个按钮,但是我并没有将这个panel设置为透明的,按道理来说应该是看不到layered窗格的图片,因为内容窗格在它的上面把他覆盖了,但是程序运行后,竟然可以看到标签上的图片,更奇怪的是,按一下按钮(事件响应为重画panel),panel变为不透明,遮住了layeredpane的标签图片,再将窗口最大化,图片又出现了!请问大神这是怎么回事?! 展开
import javax.swing.*;
import javax.imageio.*;
import java.awt.event.*;
public class Test2{
JFrame frame;
JButton button;
JPanel panel;
JTextField text;
JLabel label;
ImageIcon image;
public Test2(){
frame=new JFrame();
frame.getLayeredPane().setLayout(null);
frame.getLayeredPane().add(label=new JLabel(image=new ImageIcon("c://Test.jpg")));
label.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
JPanel panel=(JPanel)frame.getContentPane();
panel.setLayout(new FlowLayout());
panel.add(button=new JButton("draw"));
frame.setSize(image.getIconWidth(),image.getIconHeight());
frame.setVisible(true);
frame.validate();
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
panel.repaint();
}
});
}
public static void main(String[] agrs){
new Test2();
}
}
首先,我给frame的layered窗格添加了一个含有图片的标签,然后再将frame的内容窗格强制转换为一个panel,再往这个panel里面添加一个按钮,但是我并没有将这个panel设置为透明的,按道理来说应该是看不到layered窗格的图片,因为内容窗格在它的上面把他覆盖了,但是程序运行后,竟然可以看到标签上的图片,更奇怪的是,按一下按钮(事件响应为重画panel),panel变为不透明,遮住了layeredpane的标签图片,再将窗口最大化,图片又出现了!请问大神这是怎么回事?! 展开
1个回答
2016-11-30
展开全部
JPanel panel
重复定义,编译有问题
~~~~~~~
图片最好提前载入好
~~~~~
重复定义,编译有问题
~~~~~~~
图片最好提前载入好
~~~~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询