java panel cancel_如何让一个Dialog里面的Ok和Cancel两个按钮居中呀?

我用的是GridBagLayout,Dialog上方是一行文字,下方有两个按钮,一个是Ok,一个是Cancel,可我怎么都不能把他们象其他语言里面那样居中。

GridBagLayout gridbag = new GridBagLayout();

GridBagConstraints constraints = new GridBagConstraints();

constraints.fill=GridBagConstraints.HORIZONTAL;

constraints.insets=new Insets(3,1,3,1);

okButton = new Button("      Ok      ");

canButton = new Button("Cancle");

Label messageLabel = new Label(message);

setLayout(gridbag);

constraints.gridwidth=2;

constraints.gridheight=1;

constraints.gridx=0;

constraints.gridy=0;

constraints.gridwidth = GridBagConstraints.REMAINDER;

gridbag.setConstraints(messageLabel, constraints);

add(messageLabel);

constraints.fill=GridBagConstraints.NONE;

constraints.gridwidth=1;

constraints.gridy++;

constraints.gridx=0;

gridbag.setConstraints(okButton, constraints);

okButton.addActionListener(this);

add(okButton);

constraints.anchor=GridBagConstraints.WEST;

constraints.gridx=2;

constraints.gridwidth=1;

gridbag.setConstraints(canButton, constraints);

canButton.addActionListener(this);

add(canButton);

pack();

|

很简单,你可以先new 一个Jpanel,然后,你将你的button 放在Jpanel里,就好像这样:

JPanel p = new JPanel();

JButton ok = new JButton("ok");

JButton cancel = new JButton("cancel");

p.add(ok);

p.add(cancel);

getContentPane().add("Center",p);

祝你好运!!

|

你把那两个button先放到一个Jpanel里,然后把添加那个Jpanel窗体里

不过这样的话,你得用swing组件了,不可以用Button,必须用JButton

|

楼上说得对,只有这样,你的布局才能最灵活和漂亮.

方法是将两个button放入一个panel里去,panel的布局可以是flowlayout,也可以是GridBagLayout都可以很好得达到你的居中得效果.

然后,你的label也可以放入一个panel里去.

最后,你的Dialog得布局可以设为Borderlayout,你再将上述两个panel放入你的Dialog中,放button得panel位置为sourth,放label得panel得位置为center即可.

你试试,着一切都可以在可视化下进行,不需自己写代码得.

good luck!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要调整 QDialog 对话框中 OK 和 Cancel 按钮的位置,使其位于底部并居中,您可以使用 QVBoxLayout 垂直布局管理器来实现。 下面是一个示例代码: ```cpp class CustomDialog : public QDialog { Q_OBJECT public: explicit CustomDialog(QWidget *parent = nullptr); private slots: void onOkButtonClicked(); void onCancelButtonClicked(); private: QPushButton *okButton; QPushButton *cancelButton; }; CustomDialog::CustomDialog(QWidget *parent) : QDialog(parent) { // 创建对话框中的 OK 按钮和 Cancel 按钮 okButton = new QPushButton("OK", this); cancelButton = new QPushButton("Cancel", this); // 创建垂直布局管理器 QVBoxLayout *layout = new QVBoxLayout(this); // 设置布局管理器的对齐方式为底部居中 layout->setAlignment(Qt::AlignBottom | Qt::AlignHCenter); // 将 OK 按钮和 Cancel 按钮添加到布局管理器中 layout->addWidget(okButton); layout->addWidget(cancelButton); // 将布局管理器应用于对话框 setLayout(layout); // 将按钮的 clicked() 信号与自定义的槽函数关联 connect(okButton, &QPushButton::clicked, this, &CustomDialog::onOkButtonClicked); connect(cancelButton, &QPushButton::clicked, this, &CustomDialog::onCancelButtonClicked); } void CustomDialog::onOkButtonClicked() { // 执行您希望在点击 OK 按钮后执行的操作 accept(); // 关闭对话框并返回 QDialog::Accepted 结果 } void CustomDialog::onCancelButtonClicked() { // 执行您希望在点击 Cancel 按钮后执行的操作 reject(); // 关闭对话框并返回 QDialog::Rejected 结果 } ``` 在上述代码中,我们创建了一个名为 `CustomDialog` 的 QDialog 子类,并在构造函数中创建了 OK 按钮和 Cancel 按钮。然后,我们创建了一个 QVBoxLayout 垂直布局管理器,并将其对齐方式设置为底部居中。 接下来,我们将 OK 按钮和 Cancel 按钮添加到布局管理器中,并将布局管理器应用于对话框。 通过这种方式,您可以将 OK 和 Cancel 按钮位于 QDialog 对话框的底部,并居中对齐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值