Ang*_*ris 4 java swing inputstream jtextfield
在一个项目上工作,我通过类似控制台的小窗口运行java应用程序.感谢这里的精彩社区,我设法通过输出来自proccess的数据来解决问题但是我的命令行应用程序运行将不断给出错误,因为没有输入流.
基于该线程中的最后一个有用的回复,我想我将采用类似的方法JTextFieldInputStream extends InputStream实现,但是在javadocs以及整个google和互联网上寻找一些类,我真的没有解释如何做到这一点.
所以我要求一些链接,示例,教程,示例代码,就像上一个主题一样.给我一个扩展InputStream的类,当我按Enter键时可以扩展为从JTextField读取,我将完成其余的工作并使其工作!提前致谢!
我不明白为什么你需要一个扩展InputStream的JTextField?基本上,你要找的是:
ActionListener的JTextField(即,当使用印刷机Enter,actionPerformed将被调用)text使用JTextFieldgetText()String text为InputStreamwithnew ByteArrayInputStream(text.getBytes("UTF-8"));这是一个小片段,应该为您提供基本的想法:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class TestTextField {
private void initUI() {
JFrame frame = new JFrame(TestTextField.class.getSimpleName());
frame.setLayout(new FlowLayout());
final JTextField textfield = new JTextField(20);
textfield.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String text = textfield.getText();
InputStream is = new ByteArrayInputStream(text.getBytes("UTF-8"));
// Here do something with your input stream (something non-blocking)
System.err.println(text);
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(textfield);
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestTextField().initUI();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9340 次 |
| 最近记录: |