Salve ho creato un form , devo far si che quando lo ridimensiono automaticamente si ridimensiona tutto
senza che si ridisegnano più volte le componenti. So solo che devo usare un componentlistener e sovrescrivere il metodo componentresize. Ma poi? cosa deve avvenire quando ridimensiono il frame con il mouse , in modo tale da non rovinare tutta la grafica?
codice:/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package jcallremember.server; import jCallRemember.libreria.ClienteDB; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.ContainerListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.text.SimpleDateFormat; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** * * @author Linux */ public class FormSchedaCliente extends JFrame implements Runnable{ private static final SimpleDateFormat dateformat = new SimpleDateFormat("dd/MMM/yyyy"); private static final SimpleDateFormat orarioFormat = new SimpleDateFormat("HH:mm"); private javax.swing.JButton appuntamentoKO; private javax.swing.JButton appuntamentoOkButton; private org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton calendarButton; private javax.swing.JLabel jLabel8; private javax.swing.JPanel panel; private javax.swing.JLabel labelCognome; private javax.swing.JLabel labelDataAppuntamento; private javax.swing.JLabel labelMail; private javax.swing.JLabel labelNome; private javax.swing.JLabel labelOraAppuntamento; private javax.swing.JLabel labelPrimoContatto; private javax.swing.JLabel labelTel; private javax.swing.JComboBox minutiComboBox; private javax.swing.JComboBox oreComboBox; private javax.swing.JButton riprogrammaButton; private javax.swing.JTextField textfieldCognome; private javax.swing.JTextField textfieldDataApp; private javax.swing.JTextField textfieldMail; private javax.swing.JTextField textfieldNome; private javax.swing.JTextField textfieldOraApp; private javax.swing.JTextField textfieldPrimoCont; private javax.swing.JTextField textfieldTelefono; private final ClienteDB cliente; private final Thread T; /** * Costruttore con parametri * * @param cliente */ public FormSchedaCliente(ClienteDB cliente) { this.cliente = cliente; T = new Thread(this); this.initComponents(); this.textfieldNome.setText(cliente.getNome()); this.textfieldCognome.setText(cliente.getCognome()); this.textfieldTelefono.setText(cliente.getTelefono()); this.textfieldMail.setText(cliente.getMail()); this.textfieldDataApp.setText(dateformat.format(cliente .getDataAppuntamento())); this.textfieldOraApp.setText(orarioFormat.format(cliente.getOraAppuntamento())); this.textfieldPrimoCont.setText(cliente.getPrimo_contatto("dd/MMM/yyyy HH:mm:ss")); } public void setup(){ this.initComponents(); this.setVisible(true); this.addComponentListener(new ComponentAdapter(){ @Override public void componentResized(ComponentEvent e) { panel.setSize(e.getComponent().getSize()); } }); } @Override public void run() { this.setup(); } private void initComponents() { this.setTitle("Scheda Cliente"); this.appuntamentoKO=new JButton("Appuntamento KO"); this.appuntamentoOkButton=new JButton("Appuntamento OK"); this.riprogrammaButton=new JButton("Riprogramma"); Dimension frameDim=new Dimension(461,343); Dimension txtfieldDim= new Dimension(229,29); panel=new JPanel(); panel.setPreferredSize(frameDim); labelNome=new JLabel("Titolo e/o Nome"); this.textfieldNome=new JTextField(); this.textfieldNome.setPreferredSize(txtfieldDim); this.add(panel); GridBagLayout gbl=new GridBagLayout(); this.panel.setLayout(gbl); GridBagConstraints gbcLeft=new GridBagConstraints(); GridBagConstraints gbcCenter=new GridBagConstraints(); GridBagConstraints gbcRight=new GridBagConstraints(); GridBagConstraints gbc4column=new GridBagConstraints(); gbcLeft.anchor=GridBagConstraints.WEST; gbcLeft.insets.left=5; gbcCenter.weighty=.1; gbcCenter.weightx=1; gbcCenter.ipadx=229; gbcCenter.ipady=5; gbcCenter.insets.left=30; gbcRight.anchor=GridBagConstraints.WEST; gbcRight.insets.left=5; gbcLeft.gridx=0; gbcLeft.gridy=0; this.panel.add(this.labelNome); gbl.setConstraints(labelNome, gbcLeft); gbcCenter.gridy=0; gbcCenter.gridx=1; this.panel.add(this.textfieldNome); gbl.setConstraints(this.textfieldNome, gbcCenter); this.labelCognome=new JLabel("Cognome"); gbcLeft.gridy=1; this.panel.add(labelCognome); gbl.setConstraints(labelCognome, gbcLeft); this.textfieldCognome=new JTextField(); this.textfieldCognome.setPreferredSize(txtfieldDim); gbcCenter.gridy=1; this.panel.add(textfieldCognome); gbl.setConstraints(textfieldCognome, gbcCenter); this.labelTel=new JLabel("Telefono"); gbcLeft.gridy=2; this.panel.add(labelTel); gbl.setConstraints(labelTel, gbcLeft); this.textfieldTelefono=new JTextField(); this.textfieldTelefono.setPreferredSize(txtfieldDim); gbcCenter.gridy=2; this.panel.add(textfieldTelefono); gbl.setConstraints(textfieldTelefono, gbcCenter); this.labelMail=new JLabel("Mail"); this.textfieldMail=new JTextField(); gbcLeft.gridy=3; this.panel.add(labelMail); gbl.setConstraints(labelMail, gbcLeft); gbcCenter.gridy=3; this.panel.add(textfieldMail); gbl.setConstraints(textfieldMail, gbcCenter); this.labelDataAppuntamento=new JLabel("Data Appuntamento"); this.textfieldDataApp=new JTextField(); this.panel.add(labelDataAppuntamento); gbcLeft.gridy=4; gbl.setConstraints(this.labelDataAppuntamento, gbcLeft); gbcCenter.gridy=4; this.panel.add(textfieldDataApp); gbl.setConstraints(textfieldDataApp, gbcCenter); this.calendarButton= new org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton(); this.calendarButton.setPreferredSize(new Dimension(21,19)); this.panel.add(calendarButton); gbcRight.gridx=2; gbcRight.gridy=4; gbl.setConstraints(this.calendarButton, gbcRight); this.labelOraAppuntamento=new JLabel("Ora Appuntamento"); this.textfieldOraApp=new JTextField(); this.oreComboBox=new JComboBox(); String [] ore=new String[13]; for(int i=0;i<13;i++){ ore[i]=Integer.toString(i+9); } oreComboBox.setModel(new javax.swing.DefaultComboBoxModel(ore)); this.minutiComboBox=new JComboBox(); String[] minuti=new String[60]; for(int i=0;i<60;i++){ if(i>=0 && i<=9) minuti[i]="0"+Integer.toString(i); else minuti[i]=Integer.toString(i); } this.minutiComboBox.setModel(new javax.swing.DefaultComboBoxModel(minuti)); minutiComboBox.setPreferredSize(new Dimension(28,20)); this.panel.add(this.labelOraAppuntamento); gbcLeft.gridy=5; gbl.setConstraints(labelOraAppuntamento, gbcLeft); this.panel.add(this.textfieldOraApp); gbcCenter.gridy=5; gbl.setConstraints(textfieldOraApp, gbcCenter); oreComboBox.setPreferredSize(new Dimension(28,20)); this.panel.add(oreComboBox); gbcRight.gridy=5; gbcRight.gridx=2; gbcRight.anchor=GridBagConstraints.WEST; gbl.setConstraints(this.oreComboBox, gbcRight); gbc4column.gridx=3; gbc4column.gridy=5; gbc4column.anchor=GridBagConstraints.WEST; gbc4column.insets.left=5; gbc4column.insets.right=5; this.panel.add(minutiComboBox); gbl.setConstraints(minutiComboBox, gbc4column); this.labelPrimoContatto=new JLabel("Primo Contatto"); this.textfieldPrimoCont=new JTextField(); this.textfieldPrimoCont.setPreferredSize(txtfieldDim); this.panel.add(labelPrimoContatto); gbcLeft.gridy=6; gbl.setConstraints(labelPrimoContatto, gbcLeft); this.panel.add(this.textfieldPrimoCont); gbcCenter.gridy=6; gbl.setConstraints(this.textfieldPrimoCont, gbcCenter); //inserimento bottoni gbcLeft.gridy=7; gbcLeft.insets.bottom=10; this.panel.add(this.riprogrammaButton); gbl.setConstraints(this.riprogrammaButton, gbcLeft); this.appuntamentoOkButton.setPreferredSize(new Dimension(119,23)); this.panel.add(this.appuntamentoOkButton); GridBagConstraints gbc=new GridBagConstraints(); gbc.gridy=7; gbc.gridx=1; gbc.insets.bottom=10; gbc.insets.left=50; gbc.anchor=GridBagConstraints.WEST; gbl.setConstraints(this.appuntamentoOkButton, gbc); GridBagConstraints gbc1=new GridBagConstraints(); gbc1.gridy=7; gbc1.gridx=1; gbc1.insets.bottom=10; gbc1.gridwidth=3; gbc1.anchor=GridBagConstraints.EAST; gbc1.insets.right=5; this.panel.add(this.appuntamentoKO); this.appuntamentoKO.setPreferredSize(new Dimension(119,23)); gbl.setConstraints(this.appuntamentoKO, gbc1); this.pack(); } }

Rispondi quotando