这段代码为什么我无法通过输入框把二进制的数字输出的?求大神们支教
package btodtranslation;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.util.regex.Pattern;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
public class Tmp {
JFrame f = new JFrame("转换器");
JButton ok = new JButton("确定转换");// 定义ok按钮,附上颜色
JTextArea newFigure = new JTextArea(3, 10);// 行列:3行10列
JTextField figure = new JTextField(20);// 20列
public void init() {
// JLabel okLabel = new JLabel("按下此按钮,将进行确定转换");
// f.add(okLabel);
JPanel bottom = new JPanel();
bottom.add(figure);
bottom.add(ok);
f.add(bottom, BorderLayout.SOUTH);// 底部完成!
JScrollPane taJsp = new JScrollPane(newFigure);// 可滑动
Box top = Box.createHorizontalBox();// 水平方向上
top.add(taJsp);
f.add(top, BorderLayout.NORTH);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置关闭窗口时,退出程序
Action sendMsg = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
String str = figure.getText() + "\n";
if (str.length() > 0) {
boolean bool = Pattern.matches("1[0-1]+", str);// 当bool为true时,此对象为二进制数字
if (bool) {
newFigure.append(str);
}
}
figure.setText("");// 原始值为""
}
};
ok.addActionListener(sendMsg);// 为ok键配置监视器
figure.getInputMap().put(
KeyStroke.getKeyStroke('\n',
java.awt.event.InputEvent.CTRL_MASK), "send");
/*
* 利用正则表达式,确保输入的对象是一个二进制类型的数字;
*/
figure.getActionMap().put("send", sendMsg);// 把快捷键添加到figure中
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new Tmp().init();
}
}
//我尝试过了,我的那个正则可以筛选出二进制的数字啊,但是为什么套上去就不行呢,到底哪里错了