The visual editor seems to dislike inner classes.
The VE says “java.lang.IllegalAccessException(Class cuentas.ABM$CampoCod is non-static inner class. These cannot be instantiated at this time.) ” and refuses to show a preview.
The code runs without problems.
I'm using Eclipse SDK 3.5.2 and Visual Editor 1.4.0.
Thanks,
Maria Florencia
------------------------------------------------------------
package cuentas;
import java.awt.Rectangle; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities;
public class ABM extends JDialog { private JPanel jContentPane = null; private CampoCod jtxCodCuenta = null; private CampoRs jtxRazonSoc; private class CampoRs extends Campo_2 { public CampoRs() {super();} public void doSetDatos() { System.out.println("Dentro Razon Soc " + getText()); } }
private class CampoCod extends Campo_2 { public CampoCod() {super();} public void doSetDatos() { System.out.println("Dentro Cod Cuenta " + getText()); } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new ABM();} }); }
public ABM() { super(); setLocation(0,50); setDefaultCloseOperation(DISPOSE_ON_CLOSE); initialize(); };
private void initialize() { setSize(567, 154); setContentPane(getJContentPane()); setResizable(false); setVisible(true); } private JPanel getJContentPane() { jContentPane = new JPanel(); jContentPane.setLayout(null);
JLabel jlbCuenta = new JLabel("Cuenta"); jlbCuenta.setBounds(new Rectangle(4,12,80,20)); jContentPane.add(jlbCuenta, null);
jtxCodCuenta = new CampoCod(); jtxCodCuenta.setBounds(new Rectangle(87, 12, 80, 20)); jContentPane.add(jtxCodCuenta, null);
jtxRazonSoc = new CampoRs(); jtxRazonSoc.setBounds(new Rectangle(170, 12, 373, 20)); jContentPane.add(jtxRazonSoc);
return jContentPane; }
}
package cuentas;
import java.awt.AWTKeyStroke; import java.awt.Component; import java.awt.KeyboardFocusManager; import java.awt.Rectangle; import java.awt.event.KeyEvent; import java.util.HashSet; import java.util.Set;
import javax.swing.DefaultFocusManager; import javax.swing.InputVerifier; import javax.swing.JComponent; import javax.swing.JTextField; import javax.swing.KeyStroke;
public class Campo_2 extends JTextField {
private static final long serialVersionUID = 1L; public static int alto = 20;
public static void main(String[] args) {}
public Campo_2() { super(); TeclaEnter(); generarEventos(); setFocusTraversalKeysEnabled(true);
};
public Campo_2(int x, int y, int width) { super(); TeclaEnter(); generarEventos(); int height = alto; setBounds(new Rectangle(x, y, width, height)); setFocusTraversalKeysEnabled(true); };
public void Reposicionar(int x, int y, int width) { int height = alto; setBounds(new Rectangle(x, y, width, height)); }
public void doSetDatos() {} private boolean Validacion() {return true;}
private void TeclaEnter() { Set<AWTKeyStroke> forwardKeys = getFocusTraversalKeys( KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); Set<AWTKeyStroke> newForwardKeys = new HashSet<AWTKeyStroke>(forwardKeys); newForwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)); setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, newForwardKeys); };
private void generarEventos() { setInputVerifier(new InputVerifier() { public boolean verify(JComponent input) { boolean bOK = Validacion(); if (bOK) { doSetDatos(); } return bOK;
} } ); addFocusListener(new java.awt.event.FocusListener() { public void focusLost(java.awt.event.FocusEvent e) { } public void focusGained(java.awt.event.FocusEvent e) { Component component = e.getComponent(); DefaultFocusManager focusManager = new DefaultFocusManager(); if (!(component.isEnabled())) { focusManager.focusNextComponent(component); }; } });
} }
|