【问题标题】:JDialog gets smaller everytime gets dispose/setVisible(true)JDialog 每次获取 dispose/setVisible(true) 时都会变小
【发布时间】:2016-04-28 06:59:11
【问题描述】:

First time called

[10 次调用][3]

经过更多交互后,JDialog 将结束为浮动标题栏。调整它的大小会“重置”cicle。下面是 JPanel 中调用此 JDialog 的代码。不知道是什么让它变小了,只是在发送此按钮后才注意到它。

public class Mant_presentacion extends JPanel implements ActionListener{

Boton buscar_envase = new Boton(this, new ImageIcon("lupa.png"));   
Mant_env envase = new Mant_env();   
public final JFrame OWNER;

public Mant_presentacion(JFrame OWNER){
    this.OWNER = OWNER;
    setLayout(null);
    setBackground(Color.WHITE);
    d = new JDialog(OWNER, "Seleccionar envase", true);
    buscar_envase.setBounds(500, 50, 180, 30);
    buscar_envase.setText(" Examinar envases");
    buscar_envase.addActionListener(this);
}

JDialog d;

@Override
public void actionPerformed(ActionEvent e) {
    d.setSize(envase.getWidth(), envase.getHeight());
    d.add(envase);
    d.setLocationRelativeTo(null);
    d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    d.setVisible(true);
}
}

【问题讨论】:

  • setLayout(null); Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同语言环境中的不同 PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
  • envase.getWidth() envase.getHeight() 打印上面两个返回值,你就知道了。
  • @shimbushambu 试过了,不知道为什么会减少界限。在创建 JPanel 的新实例后解决了它的设置大小问题,现在可以正常工作了。
  • 请为评论投票,以便任何人都可以轻松找到答案。

标签: java swing size action jdialog


【解决方案1】:
d.setSize(envase.getWidth(), envase.getHeight());

对话框的边界周围有装饰。如果代码将对话框 (d) 的大小设置为内容 (envase) 的大小,它每次都会缩小一点。

【讨论】:

    猜你喜欢
    • 2011-11-07
    • 2013-08-22
    • 1970-01-01
    • 2014-08-20
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    相关资源
    最近更新 更多