d1=new JDialog();
d1.setSize(200, 100);
t1=new JTextField();
t1.setBounds(10,10,40,20);
d1.add(t1);
我想在JDialog中添加组件,例如TextField,Button ...
答案 0 :(得分:9)
1)首先创建一个Jpanel
JPanel pan=new JPanel();
pan.setLayout(new FlowLayout());
2)将组件添加到该JPanel
pan.add(new JLabel("label"));
pan.add(new JButton("button"));
3)创建JDialog
JDialog jd=new JDialog();
4)将JPanel添加到JDialog
jd.add(pan);
答案 1 :(得分:0)
您必须确保不使用布局管理器。
d1.setLayout(null);
默认情况下,使用BorderLayout。使用布局管理器很棒,但真正好的,使Windows可调整大小等等,很难理解。如果没有布局管理器,您可以在尝试时指定边界。
答案 2 :(得分:0)
看看这个例子和教程..
1。 How to Make Dialogs
2。 Dynamically Add Components to a JDialog
3。 add components inside JDialog
答案 3 :(得分:0)
您可以按照添加到JFrame的方式向JDialog添加组件,因为JDialog是java.awt.Container。如果要设置要添加的组件的大小,则应使用布局管理器或将布局设置为null。
答案 4 :(得分:0)
我不确定你真的希望如何布置你的组件,但是下面的代码片段应该实现我猜你正在尝试用你当前的代码。尝试尽可能使用LayoutManager,布局约束,首选/最大/最小大小,并避免使用setLocation / setSize / setBounds。
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Test5 {
protected static void initUI() {
JDialog dialog = new JDialog();
JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 0));
JTextField textfield = new JTextField(8);
textfield.setBounds(10, 10, 40, 20);
panel.add(textfield);
dialog.add(panel);
dialog.setSize(200, 100);
dialog.setLocationRelativeTo(null);
dialog.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
initUI();
}
});
}
}
您应该阅读LayoutManager的内容。花点时间来了解它们,了解它们的工作方式以及存在的不同方法。你不会后悔花几分钟时间。