尝试在java中的GUI中添加表格下方的文本字段

问题描述 投票:0回答:2

我目前使用的代码,但只显示表。我正在尝试在它下面添加一个文本字段,但我不确定我该怎么做。我也试图在文本字段上设置一个监听器,我也不太确定如何做到这一点。对不起,如果这是一个愚蠢的问题,我没有Java形式的经验

public class table extends JFrame {
    JTable TestDB;
    public table(){
        setLayout(new FlowLayout());

        String[] columnNames={"First Name","Last Name","Address"};
        Object[][] data={{"Bob","Hazel","HelpMeDr"},{"Yo","Whattup","ezpz"}};

        TestDB=new JTable(data,columnNames);
        TestDB.setPreferredScrollableViewportSize(new Dimension(500,50));
        TestDB.setFillsViewportHeight(true);

        JScrollPane scrollPane=new JScrollPane(TestDB);
        add(scrollPane);
    }
}
java user-interface intellij-idea jframe
2个回答
2
投票

您可以使用下一个代码添加文本字段

textField = new JTextField(20);

//add a listener 
textField.addActionListener(this);

现在,为了在与文本字段交互后发生某些事情,您需要创建一个方法

public void actionPerformed(ActionEvent evt) {
    //do this when action performed at the textfield
}

我建议您访问下一个网站以获取更多信息https://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html


0
投票

所有的拳头

最后一点,简单来说,FlowLayout只有在水平对齐组件时才会使用,就好像它是行中的文本一样。

而是使用像BoxLayout这样的另一种布局

    public Table() {
        getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));

        String[] columnNames = {"First Name", "Last Name", "Address"};
        Object[][] data = {{"Bob", "Hazel", "HelpMeDr"}, {"Yo", "Whattup", "ezpz"}};

        TestDB = new JTable(data, columnNames);
        TestDB.setPreferredScrollableViewportSize(new Dimension(500, 50));
        TestDB.setFillsViewportHeight(true);

        JScrollPane scrollPane = new JScrollPane(TestDB);
        getContentPane().add(scrollPane);
        JTextField textField = new JTextField();
        getContentPane().add(textField);
    }

最后一件事是文本组件有不少于10种类型的监听器,你必须使用符合你需要的那种,我们的朋友的答案(我upvoted)建议你将使用ActionListener,它将在每次调用时调用用户在文本字段中单击“输入”。请参阅How to Use BoxLayout以更好地理解布局问题和快乐编码^ - ^。

© www.soinside.com 2019 - 2024. All rights reserved.