このコードを含む JDesktopPane があります。
public class Menu extends JFrame implements ActionListener{
/**
* Creates new form Portada
*/
public static JDesktopPane desktop;
public JDesktopPane getDesktop() {
return desktop;
}
public Menu() {
desktop = new JDesktopPane();
setContentPane(desktop);
desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
initComponents();
}
}
次に、このような新しいコンポーネントを追加します
desktop.add(orden);
そして、私はそれらを呼び出したいときに使用します
if(e.getSource()==jMenuItem1_1){
orden.setVisible(true);
desktop.setSelectedFrame(orden);
desktop.moveToFront(orden);
try {
orden.setSelected(true);
} catch (PropertyVetoException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
私が得る問題は、「orden」が別の JInternalFrame をポップアウトしたいときに、次のコードを使用することです。
searchSupplier.setVisible(true);
Main.getInstance().getPortada().getDesktop().add(searchSupplier);
Main.getInstance().getPortada().getDesktop()
.moveToFront(searchSupplier);
try {
searchSupplier.setSelected(true);
} catch (PropertyVetoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
イベントを 2 回以上実行すると、次のエラーが発生します。
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: illegal component position
新しい JInternalFrame を DesktopPane のどこに追加すればよいですか? または Orden に?、またはこのエラーを修正するにはどうすればよいですか?