找不到合适的添加方法(TextField)?

时间:2017-01-22 20:16:51

标签: java swing user-interface

我正在尝试创建一个模型浏览器,但这个错误始终来自一个看似很好的代码行。

import java.awt.Container;
import java.awt.Font;
import java.awt.Insets;
import javafx.scene.control.TextField;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author PC
 */
public class Browser extends JFrame{
    private TextField field = new TextField();
    private JEditorPane display = new JEditorPane();
    private JScrollPane scroller = new JScrollPane(display);

    public static void main(String args[]){
    Browser file = new Browser();
    file.framelander();
    }

    public void framelander() {
       setTitle("Browser");
       setSize(1200, 800);
       setResizable(false);
       setVisible(true);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setLayout(null);
       setLocationRelativeTo(null);
       addComponentsToFrame(getContentPane());
    }

    public void addComponentsToFrame(Container pane) {
        Insets insets = getInsets();

        pane.add(field);
        pane.add(scroller);

        Font font = new Font("Menlo", Font.PLAIN, 11);
    field.setFont(font);
    }



}

我得到的错误是在pane.add(字段)中出现错误;

no suitable method found for add(TextField)
    method Component.add(PopupMenu) is not applicable
      (argument mismatch; TextField cannot be converted to PopupMenu)
    method Container.add(Component) is not applicable
      (argument mismatch; TextField cannot be converted to Component)
----
(Alt-Enter shows hints)

我也在 field.setFont( font )的粗体部分获得“不兼容的类型:java.awt.Font无法转换为javafx.scene.text.Font” ; 但我认为这是由于最初的错误。我会在这里发布,以防万一。

感谢任何和所有帮助。提前谢谢。

1 个答案:

答案 0 :(得分:3)

您输入了错误的TextField

import javafx.scene.control.TextField;

你可能想导入这个:

import javax.swing.JTextField;

然后将field更改为JTextField

private JTextField field = new JTextField();

这应该可以解决您描述的所有错误。 此外,您的JFrame应该有一个布局设置,我建议您查看本指南A Visual Guide to Layout Managers