In questo codice ho un pannello nello GridBagLayout
che contiene uno JLabel
e uno JTextField
.Ridimensionamento automatico di un componente all'interno di GridBagLayout
import java.awt.*;
import javax.swing.*;
public class Simple
{
JFrame simpleWindow = new JFrame("Simple MCVE");
JPanel simplePanel = new JPanel();
JLabel lblSimple;
JTextField txtSimple;
public void numberConvertGUI()
{
simpleWindow.setBounds(10, 10, 420, 80);
simpleWindow.setMinimumSize(new Dimension(420, 80));
simpleWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
simpleWindow.setLayout(new GridLayout(1,1));
createSimplePanel();
simpleWindow.getContentPane().add(simplePanel);
simpleWindow.setVisible(true);
}
public void createSimplePanel()
{
simplePanel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
lblSimple = new JLabel();
c.weightx = 0.0;
c.weighty = 1.0;
c.fill = GridBagConstraints.BOTH;
c.insets = new Insets(0,2,0,2);
c.gridx = 0;
c.gridy = 0;
c.ipady = 0;
lblSimple.setText("Next to me is a JTextField: ");
lblSimple.setHorizontalAlignment(JLabel.RIGHT);
simplePanel.add(lblSimple, c);
txtSimple = new JTextField();
c.weightx = 0.5;
c.fill = GridBagConstraints.HORIZONTAL;
c.ipady = 5;
c.gridx = 1;
c.gridy = 0;
c.insets = new Insets(0,2,0,2);
simplePanel.add(txtSimple, c);
}
public static void main(String[] args)
{
Simple s = new Simple();
s.numberConvertGUI();
}
}
mi piacerebbe essere in grado il campo di testo dipende dalla quantità di dati inseriti in esso per ridimensionare automaticamente. Ad esempio quando la stringa "Come faccio a ridimensionare questo componente automaticamente quando viene raggiunto il limite?" è inserito nel JTextField sembra così.
Tuttavia, come io entro la stringa vorrei che la JTextBox
e la JFrame
per ridimensionare automaticamente per produrre qualcosa che sembra un po 'come questo.
L'unico problema è che non sono a conoscenza di tutto ciò che mi permette di fare questo. Apprezzerei molto qualsiasi aiuto nel portare a termine questo compito.
Modifica
Quando il componente viene ridimensionato automaticamente Vorrei anche che ci sia una dimensione massima per quel componente. In questo modo, man mano che vengono inseriti più dati, il componente non continuerà a ridimensionare il monitor del computer di qualcuno.
aggiungere DocumentListener a JTextField che il calcolo String lunghezza in JTextField o il numero di colonne con l'intenzione di getPreferredSIze o Quota per JTextField, quindi chiamare rinnovare e ridisegnare a JFrame (forse quei due notificanti devono essere wrapper in invokeLater) – mKorbel