【问题标题】:JTextField changing borderJTextField 更改边框
【发布时间】:2018-08-28 10:17:20
【问题描述】:

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

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

提前感谢您的回答。

【问题讨论】:

  • 导入 java.awt.Color 而不是`javafx.scene.paint.Color`。这是两个不同的用户界面库,因此您必须确保导入正确的一个以供您使用。
  • 将Color类的导入包改成java.awt.Color

标签: java java-7 jtextfield


【解决方案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));

【讨论】:

    【解决方案2】:

    如果您的代码需要同时引用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));
    

    【讨论】:

      猜你喜欢
      • 2015-03-19
      • 1970-01-01
      • 2022-11-21
      • 2012-05-16
      • 1970-01-01
      • 2011-01-17
      • 2012-09-09
      • 1970-01-01
      相关资源
      最近更新 更多