gpt4 book ai didi

java - 使用 JOptionPane 时行之间有很多空间

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:10 24 4
gpt4 key购买 nike

我正在使用 JOptionPane。我不明白为什么窗口上的行之间有很大的空间...很抱歉我在 JOptionPane 上发布了很多问题...

有人知道我做错了什么吗?

我应该做什么?

public class ControlPannelWindow extends JFrame{
public void run(){
EventQueue.invokeLater
(
new Runnable()
{
@Override
public void run() {
JPanel panel = new JPanel();
JPanel subPanelNbActions = new JPanel();
JPanel subPanelNbActions2 = new JPanel();
Container c = getContentPane();
c.setLayout(new FlowLayout());
panel.setLayout(new GridLayout(2,1));//+1 for radioButton, +2 for NB_ACTION
try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex){}

panel.add(subPanelNbActions);
panel.add(subPanelNbActions2);

String s = " ";
JLabel labelNbAction = new JLabel(s);
JLabel labelNbAction2 = new JLabel(s);

labelNbAction.setFont(new Font("DigifaceWide Regular", Font.PLAIN, 10));
labelNbAction2.setFont(new Font("DigifaceWide Regular", Font.PLAIN, 10));

Timer t = new Timer
(
500, new ActionListener() //500 -> time in ms -> 0.5 seconds
{
@Override
public void actionPerformed(ActionEvent e)
{
int nbAction = 5;
labelNbAction.setText("Total action : " + Integer.toString(nbAction));
labelNbAction2.setText("Total action : " + Integer.toString(nbAction+1));
}
}
);
t.setRepeats(true);
t.start();

subPanelNbActions.add(labelNbAction);
subPanelNbActions2.add(labelNbAction2);
JOptionPane.showMessageDialog(null, panel, "What do you want to do ?", JOptionPane.INFORMATION_MESSAGE);
t.stop();
}
}
);
}
}

最佳答案

您的问题不是 JOptionPane,而是您为标签定义的面板!

您可以给它们添加边框,使其对您可见:

panel.setBorder(BorderFactory.createLineBorder(Color.GREEN));
subPanelNbActions.setBorder(BorderFactory.createLineBorder(Color.RED));
subPanelNbActions2.setBorder(BorderFactory.createLineBorder(Color.RED));
labelNbAction.setBorder(BorderFactory.createLineBorder(Color.BLACK));
labelNbAction2.setBorder(BorderFactory.createLineBorder(Color.BLACK));


您需要设置子面板的布局:

JPanel subPanelNbActions = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
JPanel subPanelNbActions2 = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));

也许这有帮助,需要进一步的说明: How to remove the padding between in the JPanel still using a flow layout?

关于java - 使用 JOptionPane 时行之间有很多空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35629970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com