我无法理解为什么在下面的代码中只显示按钮,为什么没有显示标签和文本字段。
import javax.swing.*;
import java.awt.*;
class Invent extends JFrame
{
public Invent(){
JFrame c=new JFrame("trying");
JLabel label1;
JTextField txtfld1;
JButton buttoncomp;
label1=new JLabel("Enter the path");
txtfld1=new JTextField();
buttoncomp=new JButton("Update");
c.add(label1);
c.add(txtfld1);
c.add(buttoncomp);
c. pack();
c.setVisible(true);
}
public static void main(String[] args)
{
new Invent();
}
}
请帮助......
答案 0 :(得分:5)
JFrame内容窗格的默认布局是BorderLayout。您将所有组件添加到BorderLayout.CENTER位置(通过调用单参数add()函数),这意味着只添加了最后一个组件。
使用不同的布局管理器,或将组件添加到BorderLayout中的不同位置。
有关BorderLayout的更多信息,请访问here。
顺便说一句,您的标题与您的实际问题无关:JFrame和内容窗格之间的区别在于JFrame 包含内容窗格。 JFrame类将setLayout()和add()等调用传递给其内容窗格。
答案 1 :(得分:-1)
它的工作原理不正确(对你来说,但java会按你所说的:) :)
因为你将(这些)三个组件添加到JFrame 行(下一个删除最后一个)
你必须按照以下方式工作:
label1.add(txtfld1);
label1.add(buttoncomp);
c.add(label1);
c.pack();
c.setVisible(true);
还有别的......
如果这对您有用,请告诉我......