Reputation: 31
enter image description here My project was working perfectly, and then somehow when I opened netbeans I was surprised to see this exception:
java.lang.InstantiationException: com.mycompany.mma.CustomTable
at java.base/java.lang.Class.newInstance(Class.java:678)
at org.netbeans.modules.form.CreationFactory.createDefaultInstance(CreationFactory.java:155)
at org.netbeans.modules.form.RADComponent.createBeanInstance(RADComponent.java:227)
at org.netbeans.modules.form.RADComponent.initInstance(RADComponent.java:166)
at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:761)
at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:949)
at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:805)
at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:949)
at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:805)
at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:949)
at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:484)
at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:260)
at org.netbeans.modules.form.FormEditor$2.run(FormEditor.java:327)
at org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:268)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:123)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:77)
at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:71)
at org.openide.util.Mutex.readAccess(Mutex.java:231)
at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:251)
at org.netbeans.modules.form.FormEditor.loadFormData(FormEditor.java:324)
at org.netbeans.modules.nbform.FormEditorSupport.loadOpeningForm(FormEditorSupport.java:436)
at org.netbeans.modules.nbform.FormDesignerTC.loadForm(FormDesignerTC.java:256)
at org.netbeans.modules.nbform.FormDesignerTC.access$300(FormDesignerTC.java:64)
at org.netbeans.modules.nbform.FormDesignerTC$PreLoadTask$1.run(FormDesignerTC.java:245)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.NoSuchMethodException: com.mycompany.mma.CustomTable.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3641)
at java.base/java.lang.Class.newInstance(Class.java:665)
... 37 more
java.lang.InstantiationException: com.mycompany.mma.CustomTable
at java.base/java.lang.Class.newInstance(Class.java:678)
at org.netbeans.modules.form.CreationFactory.createDefaultInstance(CreationFactory.java:155)
at org.netbeans.modules.form.RADComponent.createBeanInstance(RADComponent.java:227)
at org.netbeans.modules.form.RADComponent.initInstance(RADComponent.java:166)
at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:761)
at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:949)
at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:805)
at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:949)
at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:805)
at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:949)
at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:805)
at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:949)
at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:484)
at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:260)
at org.netbeans.modules.form.FormEditor$2.run(FormEditor.java:327)
at org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:268)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:123)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:77)
at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:71)
at org.openide.util.Mutex.readAccess(Mutex.java:231)
at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:251)
at org.netbeans.modules.form.FormEditor.loadFormData(FormEditor.java:324)
at org.netbeans.modules.nbform.FormEditorSupport.loadOpeningForm(FormEditorSupport.java:436)
at org.netbeans.modules.nbform.FormDesignerTC.loadForm(FormDesignerTC.java:256)
at org.netbeans.modules.nbform.FormDesignerTC.access$300(FormDesignerTC.java:64)
at org.netbeans.modules.nbform.FormDesignerTC$PreLoadTask$1.run(FormDesignerTC.java:245)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.NoSuchMethodException: com.mycompany.mma.CustomTable.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3641)
at java.base/java.lang.Class.newInstance(Class.java:665)
... 39 more
I created a custom table and a custom button with slide effect animation. It was working perfectly, but then this happened
This is the code for the custom table:
import java.awt.Color;
import static java.awt.Color.black;
import static java.awt.Color.red;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;
/**
*
* @author Haythem
*/
public class CustomTable extends JTable{
public CustomTable(int a , int b ,int c){
getTableHeader().setDefaultRenderer(new CustomTableHeader(a,b,c));
getTableHeader().setPreferredSize(new Dimension(0,70));
setDefaultRenderer(Object.class, new CustomTableCell());
setRowHeight(45);
setBorder(null);
this.setOpaque(true);
this.setBackground(new java.awt.Color(10, 100, 10));
this.isCellEditable(-1, -1);
this.setEditingRow(-1);
this.setEditingColumn(-1);
this.setDefaultEditor(Object.class, null);
}
private class CustomTableHeader extends DefaultTableCellRenderer{
public CustomTableHeader(int a , int b , int c) {
setcolor(a, b, c);
}
int l,k,m;
public void setcolor(int a , int b , int c){
this.l=a;
this.k=b;
this.m=c;
}
@Override
public Component getTableCellRendererComponent(JTable table , Object o , boolean b , boolean b1 , int i , int i2){
Component c= super.getTableCellRendererComponent(table, o, b1, b1, i, i2);
c.setBackground(new java.awt.Color(l,k,m));
c.setFont(new Font("AraAlmBon",Font.BOLD,14));
return c;
}
}
private class CustomTableCell extends DefaultTableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c=super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(isCellSelected(row, column)){
if(row%2==0){
c.setBackground(new java.awt.Color(33,103,153));
}
else{
c.setBackground(new java.awt.Color(29,86,127));
}
}
else{
if(row%2==0){
c.setBackground(new java.awt.Color(50,50,50));
}
else{
c.setBackground(new java.awt.Color(30,30,30));
}
}
c.setForeground(new Color(200,200,200));
setBorder(new EmptyBorder(0,5,0,5));
return c;
}
}
private class CustomTablef extends DefaultTableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/OverriddenMethodBody
}
}
}
This is the custom button code:
import javax.swing.JButton;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Area;
import java.awt.geom.RoundRectangle2D;
/**
*
* @author Haythem
*/
public class Button extends JButton{
public float getAnimate() {
return animate;
}
/**
* @param animate the animate to set
*/
public void setAnimate(float animate) {
this.animate = animate;
repaint();
}
private float animate;
public Button(){
setOpaque(false);
setContentAreaFilled(false);
}
@Override
public void paint(Graphics grphcs){
Graphics2D g;
g=(Graphics2D)grphcs.create();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
double width=getWidth();
double height=getHeight();
double x=animate*width-width;
Area area=new Area(new RoundRectangle2D.Double(x,0,width,height,0,0));
g.setColor(new java.awt.Color(0, 110, 50));
g.fill(area);
g.dispose();
super.paint(grphcs);
}
}
I tried to remove the component and try again. It worked for a while and then the issue resurfaced.
Upvotes: 0
Views: 407
Reputation: 31
The newInstance() call failed throwing an exception (NoSuchMethodException) Because no default constructor for the custom class was found thus what i did was create a default constructor and that fixed the issue
Upvotes: 2