Я добавляю и удаляю JButton на MouseEnter и MouseExit соответственно.Это работает нормально, но когда кнопка добавлена на панель, она появляется в верхнем правом углу вместо указанной позиции BorderLayout.SOUTH
.
Кадр имеет только JPanel, и единственная строка, которую я добавил,
jPanel1.addMouseListener(new myMouseListener(jPanel1));
Слушатель мыши
package example;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JPanel;
public class myMouseListener extends MouseAdapter{
JButton btn;
JPanel panel;
public myMouseListener(JPanel panel)
{
this.panel = panel;
this.btn = new JButton("Test");
this.btn.setSize(40, 40);
}
public void mouseEntered(MouseEvent e) {
panel.setBackground(Color.red);
panel.add(btn, BorderLayout.SOUTH);
}
public void mouseExited(MouseEvent e) {
panel.setBackground(Color.blue);
panel.remove(btn);
}
}
sscce можно скачать здесь
http://www.filehosting.org/file/details/302851/Example.zip
Может кто-нибудь пролить свет на проблему?