Salve, qualcuno potrebbe spiegarmi la differenza tra questi due metodi che mi stanno facendo letteralmente impazzire. Adesso vi posto anche il codice del form che ho creato pero non capisco perchè se ridimensiono il secondo pannello con la setPreferredSize non ottengo il risultato sperato. Mentre se metto la setSize anche al primo pannello si rimpicciolisce tutto !! per piacere aiutatemi.
Addirittura se tolgo la setSize dal secondo Pannello il FlowLayout mette i bottoni uno sotto l'altro...
codice:private void initComponents(){ this.addWindowListener(new WindowAdapter(){ @Override public void windowClosing(WindowEvent evt){ FormMailSettings.open=false; } }); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); jl_mitt=new JLabel("E-Mail: "); jl_pass=new JLabel("Password: "); jl_port=new JLabel("Port: "); jl_host=new JLabel("Host: "); mitt=new JFormattedTextField(SendMail.getMitt()); pass=new JFormattedTextField(SendMail.getpwd()); host=new JFormattedTextField(SendMail.getHost()); port=new JFormattedTextField(SendMail.getPort()); jb1=new JButton("Enter"); jb2=new JButton("Cancel"); this.setTitle("Mail Settings"); //Inserisco due pannelli nel frame utilizzando il gridbagLayout jp1=new JPanel(); jp2=new JPanel(); GridBagLayout layout=new GridBagLayout(); GridBagConstraints c=new GridBagConstraints(); this.setLayout(layout);// setto il layout jp1.setPreferredSize(new Dimension(350,250)); c.weightx = .5; c.weighty = .2; c.gridx = 0; c.gridy = 0; c.insets.top = 0; c.insets.left = 0; this.add(jp1); layout.setConstraints(jp1, c); //inserisco il secondo pannello c.gridy=1; this.add(jp2); layout.setConstraints(jp2, c); //imposto il layout del primo pannello jp1.setLayout(layout); Dimension d=new Dimension(); //gli inserisco gli elementi d.setSize(200,29); c.anchor=GridBagConstraints.WEST; //primo elemento jlabel c.fill=GridBagConstraints.NONE; c.gridx=0; c.gridy=0; jp1.add(jl_mitt); layout.setConstraints(jl_mitt, c); //primo elemento jfield c.fill=GridBagConstraints.HORIZONTAL; c.gridx=1; jp1.add(mitt); mitt.setPreferredSize(d); layout.setConstraints(mitt, c); //secondo elemento jlabel c.fill=GridBagConstraints.NONE; c.gridy=1; c.gridx=0; jp1.add(jl_pass); layout.setConstraints(jl_pass, c); //secondo elemento passwordfield c.fill=GridBagConstraints.HORIZONTAL; c.gridx=1; pass.setPreferredSize(d); jp1.add(pass); layout.setConstraints(pass, c); //terzo elemento jlabel c.fill=GridBagConstraints.NONE; c.gridy=2; c.gridx=0; jp1.add(jl_host); layout.setConstraints(jl_host, c); //terzo elemento jfield c.fill=GridBagConstraints.HORIZONTAL; c.gridx=1; host.setPreferredSize(d); jp1.add(host); layout.setConstraints(host, c); //quarto elemento jlabel c.fill=GridBagConstraints.NONE; c.gridy=3; c.gridx=0; jp1.add(jl_port); layout.setConstraints(jl_port, c); //quarto elemento jfield c.fill=GridBagConstraints.HORIZONTAL; c.gridx=1; port.setPreferredSize(d); jp1.add(port); layout.setConstraints(port, c); //jbutton jp2.setSize(new Dimension(80,80)); FlowLayout f=new FlowLayout(FlowLayout.LEFT,5,5); System.out.println(jp2.getSize()); jp2.setLayout(f); jp2.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); jp2.add(jb1,ComponentOrientation.LEFT_TO_RIGHT); jp2.add(jb2); // jb1.setLocation(jp2.getWidth()/2, (jp1.getHeight()+jp2.getHeight())/2); // jb2.setLocation(jp2.getWidth()/2+jb1.getWidth()+20, jp1.getHeight()+jp2.getHeight()/2); this.setVisible(true); this.pack(); this.setLocation(this.getToolkit().getScreenSize().width/2-this.getWidth()/2, this.getToolkit().getScreenSize().height/2-this.getHeight()/2); jb1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { SendMail.setMailSettings(mitt.getText(), pass.getText(), host.getText(), port.getText()); FormMailSettings.open=false; FormMailSettings.this.dispose(); } }); //HANDLER TASTO CANCEL jb2.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { FormMailSettings.this.dispose(); FormMailSettings.open=false; } }); }

Rispondi quotando