Sorry, the code is:

import javax.swing.JPanel;

import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.name.Named;
import com.google.inject.name.Names;

public class AnnotationDemo3 {
        @Inject
        @Named("panel")
        public JPanel panel=null;

        public AnnotationDemo3(){
                System.out.println(panel);
        }

        public JPanel getPanel() {
                return panel;
        }

        public void setPanel(JPanel panel) {
                this.panel = panel;
        }

        public static void main(String[] args) {
                Injector injector = Guice.createInjector(new AbstractModule() {
                        @Override
                        protected void configure() {
                                
bind(JPanel.class).annotatedWith(Names.named("panel")).to(
                                                MyPanel.class);
                        }
                });
                AnnotationDemo3 demo3 = 
injector.getInstance(AnnotationDemo3.class);
                System.out.println(demo3.panel);
        }
}


class MyPanel extends JPanel {

}

On Aug 19, 7:00 am, Stuart McCulloch <[email protected]> wrote:
> 2009/8/19 zhaoyi <[email protected]>
>
>
>
> > Below is my code. The class AnnotationDemo3 has a panel field which
> > will be injected by annotation. The output of this program is:
>
> > null
> > demo.bindinganontation.MyPanel[,
>
> > 0,0,0x0,invalid,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]
>
> > In the constructor, the printf will print a null value which means the
> > panel field doesn't have been created at this time. How can I let it
> > creates the field at the very beginning time of the create created.
>
> I don't see any code here, but it sounds like you need to use constructor
> injection:
>
>    http://code.google.com/p/google-guice/wiki/Injections
>
> thanks.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to