Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaAWT向现有框架添加元素_Java_Awt_Element - Fatal编程技术网

JavaAWT向现有框架添加元素

JavaAWT向现有框架添加元素,java,awt,element,Java,Awt,Element,我想在现有框架中添加一个按钮和一个文本字段。 我想隐藏TextArea,然后在上面添加它们,但我失败得很惨。第112-117行,任何帮助都将不胜感激(我知道AWT正在被弃用…) 添加新组件后,必须验证框架 class EditHandler implements ActionListener{ ... public void actionPerformed(ActionEvent ae){ ... notepad.add(find_field);

我想在现有框架中添加一个按钮和一个文本字段。 我想隐藏TextArea,然后在上面添加它们,但我失败得很惨。第112-117行,任何帮助都将不胜感激(我知道AWT正在被弃用…)


添加新组件后,必须验证框架

class EditHandler implements ActionListener{
    ...
    public void actionPerformed(ActionEvent ae){
        ...
        notepad.add(find_field);
        notepad.add(find);        
        notepad.validate();  // forces the Frame to refresh with new Elements
在一个面板中对一组新组件求和总是一个好主意。这样就更容易把它放在某个地方。我想你想做的是这样的:

Panel findPanel = new Panel();
TextField find_field = new TextField(); 
find_field.setPreferredSize(new Dimension(150,25));
Button find = new Button("Find");
findPanel.add(find_field);
findPanel.add(find);
notepad.add(findPanel, BorderLayout.EAST);
notepad.validate();

你知道有什么方法可以把这两个元素一个显示在另一个之外吗?我只能看到“查找”按钮。我应该使用其中一种布局还是必须手动执行?更新了我的答案。希望有帮助。您应该尝试学习一些关于布局的知识;)
Panel findPanel = new Panel();
TextField find_field = new TextField(); 
find_field.setPreferredSize(new Dimension(150,25));
Button find = new Button("Find");
findPanel.add(find_field);
findPanel.add(find);
notepad.add(findPanel, BorderLayout.EAST);
notepad.validate();