【问题标题】:is Box.createHorizontalBox() still supported? import error仍然支持 Box.createHorizo​​ntalBox() 吗?导入错误
【发布时间】:2017-01-17 18:09:08
【问题描述】:

我只是想通过 Eclipse Neon 来使用 Box (Java API) 类。当我导入javax.swing.Box 时,该类似乎不再存在。

如果我这样调用函数:

Box myBox = Box.createHorizontalBox();

Eclipse 显示错误:“方法 createHorizontalBox() 未定义类型 Box”

javax.swing 中是否不包含类 Box(和函数)?知道有什么问题吗?

【问题讨论】:

  • 它仍然存在并且有效。
  • 确实存在,见the docs。您是否可能在您的项目中定义了它正在调用的不同 Box 类?如果你明确地调用它会发生什么,比如javax.swing.Box.createHorizontalBox()
  • 您确定您已导入 javax.swing.Box 而不是其他 Box 类之一,例如 javafx.scene.shape.Box
  • 无论如何,Java 不会从任何 java 或 javax 包中删除公共方法(或公共字段或公共类)。这是 OO 中称为 contract 的基本概念的一部分。(理论上,已弃用的 API 可以在以后的版本中删除,但到目前为止还没有发生。)

标签: java eclipse swing box


【解决方案1】:

好的,我试图在一个名为“Box”的类中执行此操作,所以我只是更改了类的名称并找到了所有工作。

希望对其他人有所帮助

【讨论】:

    【解决方案2】:

    是的,它还在。

    import java.awt.BorderLayout;
    
    import javax.swing.Box;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
    public class MainClass {
      public static void main(String args[]) {
        JFrame f = new JFrame("JPasswordField Sample");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Box rowOne = Box.createHorizontalBox();
        rowOne.add(new JLabel("Username"));
        rowOne.add(new JTextField());
        Box rowTwo = Box.createHorizontalBox();
        rowTwo.add(new JLabel("Password"));
        rowTwo.add(new JPasswordField());
        f.add(rowOne, BorderLayout.NORTH);
        f.add(rowTwo, BorderLayout.SOUTH);
        f.setSize(300, 200);
        f.setVisible(true);
      }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多