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();
}
}