JTextField更改边框

时间:2018-08-28 10:17:20

标签: java java-7 jtextfield

如何更改JTextField的边框颜色?我尝试过someField.setBorder(new LineBorder(Color.RED,2)),但它给了我

  

mismatcherror(不兼容的类型:javafx.scene.paint.Color无法转换为java.awt.Color)。

谢谢您的回答。

2 个答案:

答案 0 :(得分:1)

请检查您的import部分。您应该这样导入java.awt.Color

import java.awt.Color;

如果要使用LineBorder类创建边框,则可以执行以下操作:

import java.awt.Color;
import javax.swing.border.LineBorder;

textField.setBorder(new LineBorder(Color.RED, 2));

另一种选择是使用BorderFactory类创建边框,如下所示:

import java.awt.Color;
import javax.swing.BorderFactory;

textField.setBorder(BorderFactory.createLineBorder(Color.RED, 2));

答案 1 :(得分:0)

如果您的代码需要同时引用java.awt.Colorjavafx.scene.paint.Color,那么如果尝试同时导入它们,则会遇到另一种错误。

$ cat test.java
import java.awt.Color;
import javafx.scene.paint.Color;
public class test {}

$ javac test.java
test.java:2: error: a type with the same simple name is already defined by the single-type-import of Color
import javafx.scene.paint.Color;
^
1 error

一种解决方案是选择一个导入,然后完全对推荐人所使用的地方进行资格评定。

在您的特定情况下,由于您的类文件已导入javafx.scene.paint.Color,因此您可能已经具有引用它的代码。

最简单的方法是将一个导入替换为另一个,然后编译即可完成。这意味着您没有没有引用javaf.scene.paint.Color的代码。

但是,如果无法编译,则不应导入java.awt.Color。相反,您要做的是将第一个有问题的代码修改为此:

someField.setBorder(new LineBorder(java.awt.Color.RED, 2));