我正在尝试创建一个模型浏览器,但这个错误始终来自一个看似很好的代码行。
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” ; 但我认为这是由于最初的错误。我会在这里发布,以防万一。
感谢任何和所有帮助。提前谢谢。
答案 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