JAVA也可以用于图像的设计吗?

JAVA也可以用于图像的设计吗?,第1张

是的,Java可以用于图像的设计。Java提供了许多图形库和工具,可以用于创建和处理图像。以下是一些常用的Java图形库和工具:

1. Java 2D API:Java 2D API提供了一组用于创建和处理2D图形的类和接口,包括绘图、图像处理、颜色管理和字体等方面的功能。

2. JavaFX:JavaFX是一个用于创建富客户端应用程序的框架,包括图形、媒体、界面和动画等方面的功能。JavaFX提供了一组用于创建和处理图像的类和接口,可以用于创建各种类型的图像和动画效果。

3. AWT:Abstract Window Toolkit(AWT)是Java的原始图形库,提供了一组用于创建和处理图形用户界面(GUI)的类和接口。AWT包括一些基本的绘图和事件处理功能,但是相对于Java 2D API和JavaFX,其功能较为有限。

4. Java图像处理库(Java Image Processing Library,JIPL):JIPL是一个开源的Java图像处理库,提供了一组用于处理和编辑图像的类和方法,包括图像过滤器、噪声消除、边缘检测、图像变换和颜色空间转换等方面的功能。

总之,Java可以用于图像的设计,开发人员可以根据具体需求选择适合的图形库和工具。

public class Rectangle{ private int width private int height public Rectangle(){ this.width = 10this.height = 10 } public Rectangle(int width, int height){this.width = width this.height = height }public int area(){ return width * height } //省略getter/setter }

package test

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class Z extends JFrame implements ActionListener, FocusListener {

private String[] total = { "1", "2", "3", "+", "4", "5", "6", "-", "7", "8", "9", "*", "0", ".", "=", "/" }// 总数组

private String[] other = { "clear", "delete" }// 其它功能数组

private String[] symbol = { "+", "-", "*", "/" }// 符号数组

private String multinumber = "0", operator1 = "", exists = "", operator2 = null, s = ""

// multinumber(多位数) operator1(运算符) exists(存在的)

private double d1, d2 = 0

private int Count = 0

JPanel jptotal = new JPanel()// 总面板

JTextField jtexternal = new JTextField("0")// 外部文本框

JTextField jtinside = new JTextField()// 内部文本框

JPanel jptop1 = new JPanel()// 顶部面板1

JPanel jptop2 = new JPanel()// 顶部面板2

JPanel jpmiddle = new JPanel()// 中部面板

public Z() {

jptotal.setLayout(new BorderLayout())

// 使用边界布局管理器

jptop1.setLayout(new GridLayout(2, 0))

jptop1.add(jtexternal)

jptop2.setLayout(new GridLayout(0, 2))

for (int i = 0i <other.lengthi++) {

JButton jbi = new JButton("" + other[i])

jbi.setSize(100, 10)

jptop2.add(jbi)

jbi.addActionListener(this)

}

jpmiddle.setLayout(new GridLayout(4, 0))

for (int i = 0i <total.lengthi++) {

JButton jbi = new JButton("" + total[i])

jpmiddle.add(jbi)

jbi.addActionListener(this)

}

jtexternal.addFocusListener(this)

jtexternal.add(jtinside)

jtinside.addFocusListener(this)

// 上面三行代码的作用是让文本框不可被选中

jptop1.add(jptop2)

jptotal.add(jptop1, "North")

// 以jp1为一个整体,让jp1里面的内容从最上面开始填充

jptotal.add(jpmiddle)

add(jptotal)

setVisible(true)

setSize(500, 500)

this.setLocationRelativeTo(null)

this.setDefaultCloseOperation(EXIT_ON_CLOSE)

}

// ctrl+/ :注释

public void actionPerformed(ActionEvent e) throws ArithmeticException {

try {

String inputing = e.getActionCommand()

// 表示获取当前输入的内容

if (inputing.equals(".")) {

Count++

}

exists = jtexternal.getText()

if (operator2 != null) {

int k = 0

for (int i = 0i <symbol.lengthi++) {

if (operator2.equals(symbol[i])) {

k = k + 1

}

if (inputing.equals(symbol[i])) {

k = k + 1

}

if (k == 2) {

jtexternal.setText(exists.substring(0, exists.length() - 1) + inputing)

operator1 = inputing

return

}

// 实现四则运算符不可同时存在,新输入的替换旧的

if (operator2.equals(symbol[i]) &&inputing.equals(".")) {

return

}

// 实现四则运算符和点不可挨着出现(点后面可以出现四则运算符,点前面不可出现)

}

}

if (exists.equals("0")) {

if (inputing.equals(".") || (inputing.equals("+")) || (inputing.equals("-")) || (inputing.equals("*"))

|| (inputing.equals("/"))) {

jtexternal.setText("0" + inputing)

} else {

jtexternal.setText(inputing)

}

} else {

jtexternal.setText(exists + inputing)

}

// 实现如果0前面没有非0数字的话,那么无论输入多少次0,都只显示一个0,如果输入其它数字,0将会被替换

if ((d1 == 0.0 || d2 == 0.0) &&inputing.equals("=") &&!exists.substring(0, 1).equals("0")) {

return

}

// 实现如果文本框内存在数字,那么输入等号,将打印其本身

if (inputing.equals("clear")) {

multinumber = "0"

exists = ""

operator1 = ""

jtexternal.setText("0")

operator2 = null

d2 = 0

s = ""

Count = 0

d1 = 0.0

// 实现,当点击clear时,文本框内将被清空至0,所有数据都将还原至初始状态

} else if (inputing.equals("delete")) {

if (exists.length() <= 1 || s.equals("=")) {

jtexternal.setText("0")

multinumber = "0"

exists = ""

operator1 = ""

operator2 = null

d2 = 0

s = ""

Count = 0

d1 = 0

// 实现,按delete删除刚输入的内容,如果将最后一个数字删除,那么效果同按clear

} else {

if (inputing.equals("+") || inputing.equals("-") || inputing.equals("*") || inputing.equals("/")) {

Count = 1

}

jtexternal.setText(exists.substring(0, exists.length() - 1))

// 将operator2存储上一次值

operator2 = exists.substring(exists.length() - 2, exists.length() - 1)

/*

* 实现如果四则运算符后面有数字的话

* 那么如果此时按删除键

* 删除之后如果新输入的还是四则运算符话

* 那么将会将原来的四则运算符替换成新输入的

*/

}

} else if (!inputing.equals("+") &&!inputing.equals("-") &&!inputing.equals("*") &&!inputing.equals("/")

&&!inputing.equals("=")) {

// 判断输入是否为数字

if (s.equals("=")) {

if (exists.equals("除数不能为0") || new Double(exists) == d1) {

if (inputing.equals(".")) {

jtexternal.setText("0" + inputing)

} else {

jtexternal.setText(inputing)

}

}

s = ""

}

// 实现一次计算完成之后,可以进行新的运算

if (multinumber == null) { // 多位数计算

multinumber = inputing

} else {

multinumber += inputing

}

d1 = new Double(multinumber)

if (operator1.equals("+")) { // 进行四则运算

if (d2 == 0) {

if (operator1.equals("*") || operator1.equals("/")) {

d2 = 1

}

}

// 实现,当四则运算符后面没有数字时,那么输入等号后结果将为符号前面的结果,如果符号前面只有一个数字,那么将打印自身

d1 = d1 + d2

} else if (operator1.equals("-")) {

d1 = d2 - d1

} else if (operator1.equals("*")) {

d1 = d1 * d2

} else if (operator1.equals("/")) {

d1 = d2 / d1

}

// 利用临时变量f2,实现四则运算

operator2 = inputing

} else if (!inputing.equals("=")) { // [四则运算符] 输入等号后继续进行计算

multinumber = "0"

operator1 = inputing

d2 = d1

operator2 = inputing

s = ""

Count = 0

// 实现小数运算

} else { // 就是 [=] 得出最终结果

jtexternal.setText("" + d1)

Count = 0

s = "="

multinumber = "0"

if (operator2.equals("0") &&"/".equals(operator1)) {

operator2 = null

d1 = 0// 将非法运算值替换成正确值

throw new ArithmeticException()// 指定抛出异常的条件

//赋值计算不抛算数异常,如果想让其抛出,必须指定条件重新抛出异常

} else {

operator1 = inputing

operator2 = null

d2 = 0

} // 计算结果

if (inputing.equals("=") &&(d1 == 0.0 || d2 == 0.0)) {

return

}

// 实现等号不可重复输入

}

} catch (ArithmeticException e1) {

jtexternal.setText("除数不能为0")

// 指定抛出异常内容

}

}

public static void main(String[] args) {

new Z()

}

public void focusGained(FocusEvent e) {

jtinside.requestFocus()

// 让焦点聚焦到内部文本框,实现外部文本框的不可聚焦功能

}

public void focusLost(FocusEvent e) {

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7801854.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存