J'ai besoin de construire un jlabel à côté d'un jcombobox à côté d'un jtextfield. JTextfield doit accepter uniquement des nombres. Le texte de jtextfield doit être stocké dans une chaîne et l'élément choisi doit également être stocké dans une chaîne différente. Aussi, il serait idéal si je pouvais ajouter un bouton j pour que toutes les sélections soient analysées lorsque le bouton est cliqué. J'utilise actuellement ce code inachevé, mais cela ne marchera pas. Quelqu'un peut-il suggérer les ajouts requis? Merci à l'avanceSwing: jlabel + jcombox + jtextfield
public class constraints {
private static JTextField tField;
private MyDocumentFilter documentFilter;
private JLabel amountLabel;
private static String amountString = "Select Quantity (in ktones): ";
public static String str = "" ;
private void displayGUI()
{
JFrame frame = new JFrame("Constraints");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
amountLabel = new JLabel(amountString);
JPanel contentPane = new JPanel();
contentPane.setBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5));
tField = new JTextField(10);
amountLabel.setLabelFor(tField);
String[] petStrings = { "Less", "Equal", "More"};
JComboBox petList = new JComboBox(petStrings) ;
petList.setSelectedIndex(3);
petList.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JComboBox cb = (JComboBox)event.getSource();
String petName = (String)cb.getSelectedItem();
System.out.println("petName");
}
});
((AbstractDocument)tField.getDocument()).setDocumentFilter(
new MyDocumentFilter());
contentPane.add(amountLabel);
contentPane.add(petList);
contentPane.add(tField);
frame.setContentPane(contentPane);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args)
{
Runnable runnable = new Runnable()
{
@Override
public void run()
{
new constraints().displayGUI();
}
};
EventQueue.invokeLater(runnable);
}
}
class MyDocumentFilter extends DocumentFilter
{
@Override
public void insertString(DocumentFilter.FilterBypass fp
, int offset, String string, AttributeSet aset)
throws BadLocationException
{
int len = string.length();
boolean isValidInteger = true;
for (int i = 0; i < len; i++)
{
if (!Character.isDigit(string.charAt(i)))
{
isValidInteger = false;
break;
}
}
if (isValidInteger)
super.insertString(fp, offset, string, aset);
else
Toolkit.getDefaultToolkit().beep();
}
@Override
public void replace(DocumentFilter.FilterBypass fp, int offset
, int length, String string, AttributeSet aset)
throws BadLocationException
{
int len = string.length();
boolean isValidInteger = true;
for (int i = 0; i < len; i++)
{
if (!Character.isDigit(string.charAt(i)))
{
isValidInteger = false;
break;
}
}
if (isValidInteger)
super.replace(fp, offset, length, string, aset);
else
Toolkit.getDefaultToolkit().beep();
}
}
S'il vous plaît définir 'gagné 't travail'? Qu'est-ce qu'il est censé faire et qu'est-ce qu'il se passe actuellement? – Smit