estoy aciendo una palicacion en que tengo un mensaje de herror
Código:
mi idea es hacer varias clases que seran el padre en la aplicacion por ejemploException in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container at java.awt.Container.checkNotAWindow(Container.java:439) at java.awt.Container.addImpl(Container.java:1035) at java.awt.Container.add(Container.java:955) at javax.swing.JFrame.addImpl(JFrame.java:556) at java.awt.Container.add(Container.java:373) at mytools.mainapp.mnuaboutActionPerformed(mainapp.java:86) at mytools.mainapp.access$000(mainapp.java:11) at mytools.mainapp$1.actionPerformed(mainapp.java:55) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:374) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:873) at java.awt.Component.processMouseEvent(Component.java:6389) at javax.swing.JComponent.processMouseEvent(JComponent.java:3268) at java.awt.Component.processEvent(Component.java:6154) at java.awt.Container.processEvent(Container.java:2045) at java.awt.Component.dispatchEventImpl(Component.java:4750) at java.awt.Container.dispatchEventImpl(Container.java:2103) at java.awt.Component.dispatchEvent(Component.java:4576) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227) at java.awt.Container.dispatchEventImpl(Container.java:2089) at java.awt.Window.dispatchEventImpl(Window.java:2518) at java.awt.Component.dispatchEvent(Component.java:4576) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672) at java.awt.EventQueue.access$400(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:631) at java.awt.EventQueue$2.run(EventQueue.java:629) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116) at java.awt.EventQueue$3.run(EventQueue.java:645) at java.awt.EventQueue$3.run(EventQueue.java:643) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:642) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Código:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package baseobj;
/**
*
* @author gacs
*/
import javax.swing.JButton;
public class basecmd extends javax.swing.JButton{
public basecmd(){
setFont(new java.awt.Font("Dialog", 0, 12));
setHorizontalTextPosition( javax.swing.SwingConstants.LEFT );
setVerticalTextPosition( javax.swing.SwingConstants.BOTTOM );
this.setSize(90, 25);
setVisible(true);
}
}
Código:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package baseobj;
/**
*
* @author gacs
*/
import javax.swing.JLabel;
public class basejlbl extends javax.swing.JLabel {
public basejlbl(){
setFont(new java.awt.Font("Dialog", 0, 12));
setHorizontalTextPosition( javax.swing.SwingConstants.LEFT );
setVerticalTextPosition( javax.swing.SwingConstants.BOTTOM );
setVisible(true);
}
}
mi idea es que en estas clase padre pondre propiedades generales que lo lleve la aplicacion, al igual que un JDialog ejemplo
Código:
package baseobj;
/**
*
* @author gacs
*/
import javax.swing.JDialog;
public class basedialogo extends javax.swing.JDialog {
public basedialogo(java.awt.Frame parent, boolean modal){
super(parent, modal);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setModal(true);
setResizable(false);
setAlwaysOnTop(true);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}
}
la clase
Código:
package baseobj;
/**
*
* @author gacs
*/
import javax.swing.JDialog;
public class basedialogo extends javax.swing.JDialog {
public basedialogo(java.awt.Frame parent, boolean modal){
super(parent, modal);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setModal(true);
setResizable(false);
setAlwaysOnTop(true);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}
}
este es codigo que llama a la clase padre
Código:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mytools;
import baseobj.basedialogo;
import baseobj.basejlbl;
/**
*
* @author gacs
*/
public class ifrmabout extends baseobj.basedialogo {
/**
*
* @param parent
* @param modal
*/
public ifrmabout(java.awt.Frame parent, boolean modal ) {
super(parent, modal);
basedialogo dialog = new basedialogo(new javax.swing.JFrame(), true);
dialog.setTitle("Acerca de");
dialog.setSize(500,200);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
dispose();
}
});
dialog.setVisible(true);
initComponents();
}
private void initComponents() {
lblsoftware = new basejlbl();
lblgacssoftware = new basejlbl();
lbldescrip = new basejlbl();
lblcopri = new basejlbl();
lblcopri2 = new basejlbl();
cmdaceptar = new baseobj.basecmd();
lblgacssoftware.setBounds(10, 10, 120, 15);
lblgacssoftware.setForeground(new java.awt.Color(51, 51, 255));
lblgacssoftware.setText("GacsSoftware");
lblgacssoftware.setFont(new java.awt.Font("Dialog", 1, 14));
lblsoftware.setBounds(10, 40, 70, 15);
lblsoftware.setText("MyTools");
lblsoftware.setFont(new java.awt.Font("Dialog", 1, 14));
lbldescrip.setBounds(80, 40, 400, 15);
lbldescrip.setText("Este programa es una herramienta de calculos para Ingenieros");
lblcopri.setBounds(10, 75, 800, 15);
lblcopri.setText("Se Prohibe el uso de este programa sin autorizacion como la modificacion");
lblcopri2.setBounds(10, 88, 800, 15);
lblcopri2.setText("parcial o total del mismo");
cmdaceptar.setLocation(365, 120);
cmdaceptar.setText("Aceptar");
cmdaceptar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdaceptarActionPerformed(evt);
}
});
add(lblgacssoftware);
add(lblsoftware);
add(lbldescrip);
add(lblcopri);
add(lblcopri2);
add(cmdaceptar);
}
private void cmdaceptarActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
private baseobj.basecmd cmdaceptar;
private baseobj.basejlbl lblsoftware;
private baseobj.basejlbl lbldescrip;
private baseobj.basejlbl lblcopri;
private baseobj.basejlbl lblcopri2;
private baseobj.basejlbl lblgacssoftware;
}
Pregunto por que me da ese error, con netbean que recomiendan

