Comment faire un formulaire d'entrée dans le code Java (pas Netbeans en utilisant JForm)?
Je veux faire un formulaire de saisie en Java, de sorte que l'utilisateur peut entrer les détails.
Quelque chose comme ceci:
Mon code
import java.awt.GridLayout;
import javax.swing.*;
class JOptionPaneTest {
public static void main(String[] args) {
String[] items = {"One", "Two", "Three", "Four", "Five"};
JComboBox combo = new JComboBox(items);
JTextField field1 = new JTextField("1234.56");
JTextField field2 = new JTextField("9876.54");
JPanel panel = new JPanel(new GridLayout(0, 1));
panel.add(combo);
panel.add(new JLabel("Field 1:"));
panel.add(field1);
panel.add(new JLabel("Field 2:"));
panel.add(field2);
int result = JOptionPane.showConfirmDialog(null, panel, "Test",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
System.out.println(combo.getSelectedItem()
+ " " + field1.getText()
+ " " + field2.getText());
} else {
System.out.println("Cancelled");
}
}
}
Mon format de sortie:
Je pense que je dois changer ma mise en page à quelque chose comme BorderLayout
. Des idées comment faire pour obtenir l'aspect de la forme au-dessus de la question?
source d'informationauteur Haxed
Vous devez vous connecter pour publier un commentaire.
Oui, vous avez à changer de mise en page. Jetez un oeil à SpringLayout et cet exemple:
le texte d'alt http://java.sun.com/docs/books/tutorial/figures/uiswing/layout/SpringForm.png
SpringLayout fonctionne très bien pour cette forme simple, mais il y a des bibliothèques tierces qui a plus de fonctionnalités. I. e. MiG Mise En Page.
Une autre façon de créer un formulaire à l'aide de GridBagLayoutde produire le résultat suivant:
Code:
La méthode d'assistance
addLabelAndTextField
:Vous utilisez actuellement un GridLayout, ce qui peut être bon pour votre besoin.
Cependant, vous devez l'initialiser avec le nombre réel de lignes et de colonnes que vous aurez besoin. Dans votre cas:
0 pour les lignes de moyens il n'y a pas de limite, et vous avez 2 colonnes, une pour les étiquettes, et une pour le composant d'entrée. Voir la Java tutoriel pour plus d'informations sur GridLayouts.
le texte d'alt http://java.sun.com/docs/books/tutorial/figures/uiswing/layout/GridLayoutDemo.png
Note cependant que le GridLayout sera "cellules" à être de la même taille, ce qui peut être un problème pour les étiquettes.
Cependant, Jonas est droite, un SpringLayout est probablement la plus adaptée à votre besoin.
Vous pouvez faire cela avec DesignGridLayout. L'extrait de code suivant devrait fonctionner (désolé, je ne pouvais pas le tester, je ne suis pas sur mon dev de la station en ce moment):
Alors vous devez utiliser
JDialog
(plutôt queJOptionPane
) pour afficher votrepanel
.