java中如何改变计算器颜色_计算器+改变窗口颜色

package 界面;

import java.awt.*;

import java.awt.GridLayout;

import java.awt.event.*;

import java.awt.BorderLayout;

import javax.swing.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;public classCalculator implements ActionListener {

JFrame f;

JPanel p;

JPanel p1;

JTextField t;

JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,delete;

GridLayout g1;

String nowButton;publicCalculator(){

f=newJFrame();

g1=new GridLayout(5,4);

p=newJPanel();

p.setLayout(g1);

t=newJTextField();

b1=new JButton("7");b2=new JButton("8");b3=new JButton("9");b4=new JButton("/");

b5=new JButton("4");b6=new JButton("5");b7=new JButton("6");b8=new JButton("*");

b9=new JButton("1");b10=new JButton("2");b11=new JButton("3");b12=new JButton("-");

b13=new JButton("0");b14=new JButton(".");b15=new JButton("=");b16=new JButton("+");

delete=new JButton("C");

b1.addActionListener(this);b2.addActionListener(this);

b3.addActionListener(this);b4.addActionListener(this);

b5.addActionListener(this);b6.addActionListener(this);

b7.addActionListener(this);b8.addActionListener(this);

b9.addActionListener(this);b10.addActionListener(this);

b11.addActionListener(this);b12.addActionListener(this);

b13.addActionListener(this);b14.addActionListener(this);

b15.addActionListener(this);b16.addActionListener(this);

delete.addActionListener(this);

p.add(b1);p.add(b2);p.add(b3);p.add(b4);p.add(b5);p.add(b6);p.add(b7);

p.add(b8);p.add(b9);p.add(b10);p.add(b11);p.add(b12);p.add(b13);p.add(b14);

p.add(b15);p.add(b16);p.add(delete);

f.add(t,BorderLayout.NORTH);

f.add(p,BorderLayout.CENTER);

f.setSize(400,300);

f.setVisible(true);

}public static voidmain(String[] args) {newCalculator();

}public voidactionPerformed(ActionEvent e) {

nowButton=e.getActionCommand();if (nowButton != "=") {

t.setText(t.getText()+nowButton);

}if (nowButton.equals("=")) {

t.setText(jisuan(t.getText()));

}if (nowButton.equals("C")) {

t.setText("0.0");

}

}public String jisuan(String string) {

StringBuffer sb= new StringBuffer(string);int commandCount = 0;//符号数量

int j = 0;//计数器

for (j = 0; j < sb.length(); j++) {if (sb.charAt(j) <= '9' && sb.charAt(j) >= '0' || sb.charAt(j) == '.') {continue;

}else{

commandCount++;

}

}char[] command = new char[commandCount];//初始化符号数组//初始化数字数组(用字符串表示)

String[] num = new String[commandCount+1];//计算有多少个运算符,就有n+1个数字

for (j = 0; j < num.length; j++) {

num[j]= "";

}//遍历一遍,吧每个数字存进数字数组,每个符号存进符号数组

int k = 0;for (j = 0; j < sb.length(); j++) {if (sb.charAt(j) <= '9' && sb.charAt(j) >= '0' || sb.charAt(j) == '.') {

num[k]+= sb.charAt(j);//用charAt()装运算符和数字

continue;

}else{

command[k]=sb.charAt(j);

k++;

}

}double result = 0;for (int i = 0; i < commandCount; i++) {//取前两个数,和第一个操作符,运算

double num1 = Double.parseDouble(num[i]);//把字符串转换为Double

double num2 = Double.parseDouble(num[i+1]);char c1 =command[i];//计算

switch(c1) {case '+':

result= num1 +num2;break;case '-':

result= num1 -num2;break;case '*':

result= num1 *num2;break;case '/':

result= num1 /num2;break;default:break;

}

num[i+1] = String.valueOf(result);//将double 变量转换成字符串

}returnString.valueOf(result);

}

}

在机器人操作系统(ROS)中,机器视觉是机器人感知和理解周围环境的关键技术。robot_vision功能包专注于这一领域,集成了多种视觉处理技术,包括摄像头标定、OpenCV库应用、人脸识别、物体跟踪、二维码识别和物体识别,极大地拓展了ROS在视觉应用方面的能力。 摄像头标定:作为机器视觉的基础,摄像头标定用于消除镜头畸变并获取相机的内参和外参。在ROS中,camera_calibration包提供了友好的用户界面和算法,帮助计算相机参数矩阵,为后续的图像校正和三维重建提供支持。 OpenCV:OpenCV是一个广泛使用的开源计算机视觉库,在ROS中扮演着重要角色。robot_vision功能包可能包含OpenCV的示例代码和节点,涵盖图像处理、特征检测、模板匹配和图像分割等功能,这些功能对机器人视觉系统至关重要。 人脸识别:ROS中的人脸识别结合了图像处理和机器学习技术。robot_vision可能集成了基于OpenCV的人脸检测算法,如Haar级联分类器或Adaboost方法,甚至可能包含深度学习模型(如FaceNet或SSD),帮助机器人实现人脸的识别和跟踪,提升人机交互能力。 物体跟踪:物体跟踪使机器人能够持续关注并追踪特定目标。在ROS中,通常通过卡尔曼滤波器、粒子滤波器或光流法实现。robot_vision功能包可能包含这些算法的实现,助力机器人完成动态目标跟踪任务。 二维码识别:二维码是一种高效的信息编码方式,常用于机器人定位和导航。ROS中的二维码包可用于读取和解析二维码,而robot_vision可能进一步封装了这一功能,使其更易于集成到机器人系统中。 物体识别:作为机器视觉的高级应用,物体识别通常涉及深度学习模型,如YOLO、SSD或Faster R-CNN。robot_vision功能包可能包含预训练的模型和对应的ROS节点,使机器人能够识别环境中的特
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值