سوينغ / جافا:كيفية استخدام سلسلة getText وsetText بشكل صحيح
سؤال
أحاول تقديم المدخلات nameField
تظهر في أ Label
مُسَمًّى label1
بعد Button
مُسَمًّى button1
تم النقر عليه.الآن يقول:"txt" وأنا أفهم السبب.لكني لا أعرف كيف يمكنني استخدام السلسلة!هل يمكن لأحد أن يشرح لي ما الذي أفعله بشكل خاطئ وكيفية استخدام هذه السلسلة بشكل صحيح؟
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class thisismytest2 {
public static void main(String[] args) {
final JFrame frame = new JFrame();
JPanel panel = new JPanel();
JTextField nameField = new JTextField("...", 2);
JButton button1 = new JButton();
final JLabel label1 = new JLabel();
label1.setText("txt");
label1.setVisible(false);
String txt = nameField.getText();
frame.add(panel);
panel.add(button1);
panel.add(label1);
frame.setSize(200,200);
frame.setVisible(true);
panel.add(nameField);
frame.setSize(600,400);
nameField.setBounds(400, 40, 400, 30);
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
label1.setVisible(true);
}
});
}
}
المحلول
أنت تقوم بتعيين نص التسمية قبل النقر فوق الزر على "txt".بدلا من ذلك عند النقر على زر الاتصال setText()
على الملصق وتمرير النص من حقل النص.
مثال:
label1.setText(nameField.getText());
نصائح أخرى
في طريقة تنفيذ الإجراء، اتصل بـ:
label1.setText(nameField.getText());
بهذه الطريقة، عند النقر على الزر، سيتم تحديث التسمية إلى نص nameField.
ال getText
تقوم الطريقة بإرجاع سلسلة، في حين أن setText
يتلقى سلسلة، حتى تتمكن من كتابتها مثل label1.setText(nameField.getText());
في مستمعك
قم بإعداد DocumentListener على nameField.عندما يتم تحديث nameField، قم بتحديث التصنيف الخاص بك.
http://download.Oracle.com/javase/1.5.0/docs/api/javax/swing/JTextField.html