0
votes

my controller:

package com.market;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;




@Controller 
public class Controllerx {

    @Autowired
    private View frame;


/*
    private void init() {
        this.frame.addWindowListener(this);
        registerAction(frame.getbEnter(), new AbstractAction() {
            private List<Funcionarios> list; 

            @Override
            public void action() {
                if (!frame.getjLogin().getText().trim().isEmpty() || !frame.getjPassword().getText().trim().isEmpty()) {

                }else {
                    JOptionPane.showMessageDialog(frame, null, "Campo vázio", JOptionPane.INFORMATION_MESSAGE);
                }
            }

            @Override
            public void posAction() {
                cleanUp();
            }
        });
    }
    */
    public void show() {
        frame.setVisible(true);
    }


}

my main:

@SpringBootApplication
@EnableAutoConfiguration
public class Market1Application {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = new SpringApplicationBuilder(Market1Application.class).headless(false).run(args);
        Controllerx appLogin = context.getBean(Controllerx.class);
    }

}

my view:

package com.market;

import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import org.springframework.stereotype.Component;


@Component
public class View extends JFrame{

    private static final int FRAME_WIDTH = 400;
    static final int FRAME_HEIGHT = 350;
    static final int FRAME_X_ORIGIN = 150;
    static final int FRAME_Y_ORIGIN = 150;
    static final int BUTTON_WIDTH = 90;
    static final int BUTTON_HEIGHT = 30;
    private JTextField jLogin;
    private JTextField jPassword;
    private JButton bEnter;
    private JButton bRegister;
    private JPanel loginForm;
    private JLabel loginText;
    private JLabel passwordText;

    public View() {
        setTitle("Login System");
        setSize         (FRAME_WIDTH, FRAME_HEIGHT);
        setLocation     (FRAME_X_ORIGIN, FRAME_Y_ORIGIN);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        setResizable(false);
        initComponents();
    }
    private void initComponents() {
        loginForm = new JPanel(new GridLayout(3,1));
        //buttons
        bRegister = new JButton("Registrar");
        bRegister.setBounds(195, 285, BUTTON_WIDTH, BUTTON_HEIGHT);
        bEnter = new JButton("Registrar");
        bEnter.setBounds(195, 285, BUTTON_WIDTH, BUTTON_HEIGHT);
        //bEnter.setMnemonic(NativeKeyEvent.VC_ENTER);
        //labels
        loginText = new JLabel();
        loginText.setText("Username:");
        passwordText = new JLabel();
        passwordText.setText("Password:");
        //
        loginForm.add(loginText);
        loginForm.add(jLogin);
        loginForm.add(passwordText);
        loginForm.add(jPassword);
        loginForm.add(bEnter);
        loginForm.add(bRegister);
        setVisible(true);
    }

    public void resetForm() {
        jLogin.setText("");
        jPassword.setText("");
    }
    public JTextField getjLogin() {
        return jLogin;
    }
    public void setjLogin(JTextField jLogin) {
        this.jLogin = jLogin;
    }
    public JTextField getjPassword() {
        return jPassword;
    }
    public void setjPassword(JTextField jPassword) {
        this.jPassword = jPassword;
    }
    public JButton getbEnter() {
        return bEnter;
    }
    public void setbEnter(JButton bEnter) {
        this.bEnter = bEnter;
    }

}

i have these errors compiling i don't know where i went wrong i have only these 3 classes

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. ERROR o.s.boot.SpringApplication - Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'controllerx': Unsatisfied dependency expressed through field 'frame'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'view' defined in file [C:\Users\Gabriel\eclipse-workspace\gabrielestudo\market-1\target\classes\com\market\View.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.market.View]: Constructor threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:845) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:742) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:389) at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:139) at com.market.Market1Application.main(Market1Application.java:16) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'view' defined in file [C:\Users\Gabriel\eclipse-workspace\gabrielestudo\market-1\target\classes\com\market\View.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.market.View]: Constructor threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1303) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1197) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593) ... 22 common frames omitted Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.market.View]: Constructor threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:184) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1295) ... 33 common frames omitted Caused by: java.lang.NullPointerException: null at java.awt.Container.addImpl(Unknown Source) at java.awt.Container.add(Unknown Source) at com.market.View.initComponents(View.java:56) at com.market.View.(View.java:39) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:172) ... 35 common frames omitted

1

1 Answers

0
votes

Your JTextField variable with name jLogin is null (it's field and you didn't initialize it) and that's why you have NPE when doing

loginForm.add(jLogin);

take a look at the documentation of the JPanel class - there is an information in add method section

public Component add(Component comp)

Throws: NullPointerException - if comp is null

seems that you will have the same issue at least on line 58 during adding jPassword


BTW you should read logs carefully because everything is there

Caused by: java.lang.NullPointerException: null

at java.awt.Container.addImpl(Unknown Source)

at java.awt.Container.add(Unknown Source)

at com.market.View.initComponents(View.java:56)

at com.market.View.(View.java:39) at