есть какая-то проблема в моем разгаре? программа. Я искал его здесь, но ответа нет, поэтому я публикую это.
Вот пример кода:
public class main{
private static JFrame frame;
private static JLayeredPane layered;
private static JPanel panel1;
private static JPanel panel2;
private static JPanel bg_change;
private static JLabel txt_bg;
private static JLabel txt_change;
private static JButton btnBG;
private static JButton btnTEXT;
public static void main(String[] args) {
frame = new JFrame();
frame.setBounds(0,0,500,500);
frame.setVisible(true);
frame.setLayout(null);
layered = new JLayeredPane();
layered.setBounds(0,0,frame.getWidth(),frame.getHeight());
layered.setLayout(null);
layered.setOpaque(true);
layered.setBackground(Color.GRAY);
frame.add(layered);
panel1 = new JPanel();
panel1.setBounds(10,10,300,300);
panel1.setOpaque(true);
panel1.setLayout(null);
panel1.setBackground(Color.RED);
layered.add(panel1,0);
btnBG = new JButton("BTN_BG");
btnBG.setBounds(100,50,0,0);
btnBG.setSize(btnBG.getPreferredSize());
panel1.add(btnBG);
btnTEXT = new JButton("BTN_TXT");
btnTEXT.setBounds(100,100,0,0);
btnTEXT.setSize(btnTEXT.getPreferredSize());
panel1.add(btnTEXT);
panel2 = new JPanel();
panel2.setBounds(50,50,300,300);
panel2.setOpaque(true);
panel2.setLayout(null);
panel2.setBackground(Color.BLUE);
layered.add(panel2,1);
bg_change = new JPanel();
bg_change.setBounds(240,240,50,50);
bg_change.setOpaque(true);
bg_change.setLayout(null);
bg_change.setBackground(Color.ORANGE);
txt_change = new JLabel("TESTTESTETST");
txt_change.setBounds(240,30,0,0);
txt_change.setSize(txt_change.getPreferredSize());
txt_change.setOpaque(false);
panel2.add(bg_change);
panel2.add(txt_change);
frame.repaint();
addListner();
}
public static void addListner() {
btnBG.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
bg_change.setBackground(Color.GREEN);
}
});
btnTEXT.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
txt_change.setText("CLICKCLICKCLICKK");
txt_change.setSize(txt_change.getPreferredSize());
}
});
}
}
нажимайте кнопки, после чего у каждого целевого компонента будет изменен цвет фона или текста. кнопки работают, но я хочу, чтобы целевые компоненты оставались за красной панелью. как мне быть?
спасибо за чтение.