这段代码为什么我无法通过输入框把二进制的数字输出的?求大神们支教

viongoon 2016-07-15 12:58:06
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();
}
}
//我尝试过了,我的那个正则可以筛选出二进制的数字啊,但是为什么套上去就不行呢,到底哪里错了
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
离别灬逝去 2016-07-15
  • 打赏
  • 举报
回复
问题在于你的这句: String str = figure.getText() + "\n"; 后面不该加上"\n"的 你去掉就好了,还有各部件的初始化最好在构造函数中完成
内容概要:本文介绍了一种基于飞蛾扑火算法(Moth-Flame Optimization, MFO)的三维路径规划方法,并提供了完整的Matlab代码实现。该方法受自然界中飞蛾围绕火焰旋转飞行行为的启发,通过模拟飞蛾在搜索空间中围绕多个“火焰”(即潜在最优解)进行螺旋式搜索的机制,实现对复杂三维空间中最优路径的高效寻优。算法在路径规划过程中充分考虑了起点、终点、障碍物分布及路径长度、安全性等约束条件,能够有效避开障碍物并生成平滑、短距离且低能耗的飞行路径。文中通过仿真实验验证了该算法在三维空间路径规划中的可行性与优越性,适用于无人机、机器人等智能体的自主导航任务。; 适合人群:具备一定Matlab编程基础和优化算法背景的科研人员、自动化与人工智能方向的研究生及工程技术人员。; 使用场景及目标:①应用于无人机、无人车、水下潜航器等智能体在复杂三维环境中的自主路径规划;②用于对比研究不同群智能优化算法(如PSO、GWO、WOA等)在路径规划中的性能差异;③为智能导航系统的设计与仿真提供算法支持和技术参考。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注飞蛾位置更新、火焰选择机制及路径约束处理部分,可通过调整参数或引入其他优化策略进一步提升算法性能,并尝试将其拓展至动态环境或多目标路径规划问题中。

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧