같은 컨테이너에 두 개의 JPanel이 서로 겹쳐서 있습니다. container.add (jpanel, 0);을 사용하고 있습니다. 및 container.add (otherjpanel, 1). 그러나 최상위 레이어가 마우스로 구성 요소 위로 마우스를 올려 놓아야한다는 것을 보여주기 위해 잘 작동합니다.구성 요소 레이어링 Java 스윙, 호버에 표시되는 레이어
여기 내 문제를 보여주는 실행 코드가 있습니다.
화면 상단에 마우스를 올려 놓기 만하면됩니다.
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.io.*;
import java.util.*;
public class test {
public static void main(String args[]) {
try {
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {}
JFrame frame = new GUIframe();
frame.setVisible(true);
frame.setResizable(false);
}
}
class GUIframe extends JFrame{
public GUIframe(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(300,400));
setSize(300, 400);
JLayeredPane content = new JLayeredPane();
content.setPreferredSize(new Dimension(300,400));
content.setSize(300,400);
JPanel board = new JPanel();
for (int i = 0;i<5;i++){
JButton button = new JButton("button");
board.add(button);
}
content.add(new ImagePanel());
this.add(content);
this.add(board);
}
}
class ImagePanel extends JPanel {
private Image img;
String imageLocation = "image location here";
ImagePanel() {
img = new ImageIcon(imageLocation).getImage();
setPreferredSize(new Dimension(300,400));
setSize(300,400);
setLayout(null);
setOpaque(false);
}
public void paint(Graphics g){
super.paint(g);
g.drawImage(img, 0, 0, this);
}
}
1) 빨리 더 도움 들어, [SSCCE] (http://pscode.org/sscce.html) 2) 스윙에서 비 TLCS, 재정'의 paintComponent (그래픽)'이 아닌'페인트를 게시 (그래픽)'. –