import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import java.awt.*; class MyJFrame extends JFrame{ MyJFrame(String title,int x,int y,int w,int h){ setLayout(new FlowLayout()); setTitle(title); setBounds(x,y,w,h); setDefaultCloseOperation(EXIT_ON_CLOSE); } } public class Test1 { public static void main(String[] args) { MyJFrame myJFrame = new MyJFrame("我的窗口", 100, 100, 500, 400); myJFrame.setLayout(new BorderLayout()); JTextArea input = new JTextArea(10, 30); myJFrame.add(new JScrollPane(input)); JTextArea output = new JTextArea(10, 30); myJFrame.add(new JScrollPane(output)); input.getDocument().addDocumentListener(new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { output.setText(input.getText()); } @Override public void removeUpdate(DocumentEvent e) { output.setText(input.getText()); } @Override public void changedUpdate(DocumentEvent e) { output.setText(input.getText()); } }); myJFrame.setVisible(true); } }
时间: 2024-02-14 13:21:49 浏览: 135
这段代码是一个简单的 Java 程序,它创建了一个窗口并在窗口中添加了两个文本框(JTextArea),一个用于输入文本,另一个用于输出文本。当在输入文本框中输入内容时,输出文本框的内容会同步更新为输入文本框的内容。这个同步更新的功能是通过添加一个文档监听器(DocumentListener)实现的。文档监听器会监听输入文本框中的内容变化,并在内容变化时将输入文本框的内容更新到输出文本框中。整个程序的界面使用了 Java 的图形界面库 Swing 来实现。
相关问题
Java中用AWT实现文本框中无内容时,清除按钮不可点击,当文本框中有内容时,清除按钮可以点击,在清除内容后又变为不可点击
实现这一功能可以通过监听文本框的输入事件,当文本框中有内容时,清除按钮设置为可点击;当文本框中无内容时,清除按钮设置为不可点击。
以下是一个简单的示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ClearButtonDemo extends JFrame {
private JTextField textField;
private JButton clearButton;
public ClearButtonDemo() {
// 创建文本框和清除按钮
textField = new JTextField();
clearButton = new JButton("清除");
clearButton.setEnabled(false); // 初始时不可点击
// 监听文本框的输入事件
textField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
updateClearButton();
}
@Override
public void removeUpdate(DocumentEvent e) {
updateClearButton();
}
@Override
public void changedUpdate(DocumentEvent e) {
updateClearButton();
}
});
// 监听清除按钮的点击事件
clearButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setText("");
updateClearButton();
}
});
// 创建面板,并添加组件
JPanel panel = new JPanel(new BorderLayout());
panel.add(textField, BorderLayout.CENTER);
panel.add(clearButton, BorderLayout.EAST);
// 将面板添加到窗口中
getContentPane().add(panel);
// 设置窗口参数并显示
setSize(300, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
// 更新清除按钮的状态
private void updateClearButton() {
if (textField.getText().isEmpty()) {
clearButton.setEnabled(false);
} else {
clearButton.setEnabled(true);
}
}
public static void main(String[] args) {
new ClearButtonDemo();
}
}
```
在上述代码中,我们利用了`DocumentListener`来监听文本框的输入事件,当文本框中有内容时,清除按钮设置为可点击,否则设置为不可点击。同时,我们也监听了清除按钮的点击事件,在清除文本框内容后,再次更新清除按钮的状态。最终,我们将文本框和清除按钮添加到一个面板中,并将面板添加到窗口中显示出来。
阅读全文