有没有办法为JOptionsPane.showOptionDialog设置布局? [英] Is there a way to set a layout for JOptionsPane.showOptionDialog?

查看:252
本文介绍了有没有办法为JOptionsPane.showOptionDialog设置布局?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果您使用的阵列是,假设长度为15,并且您希望一次显示它们,它会在一个非常长的显示框中并排显示:

If the array you are using is, let's say a length of 15, and you want to display them all at once, it shows them side by side in a really long display box:

String[] options = {"Option 1","Option 2","Option 3","Option 4",
    "Option 5","Option 6","Option 7","Option 8","Option 9",
    "Option 10","Option 11","Option 12","Option 13","Option 14",
    "Option 15"};

int displayoptions = JOptionPane.showOptionDialog (null, "select one", "Title",
    JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options [0]);

有没有办法显示它以便它有一个流程布局?

Is there a way to display it so that it has a Flow Layout?

推荐答案

对于15个选项,我更喜欢这样做:

For 15 options I'd do it more like this:

import java.awt.*;
import javax.swing.*;

public class ManyOptions {

    ManyOptions() {
        initUI();
    }

    public void initUI() {
        String[] options = {"Option 1", "Option 2", "Option 3", "Option 4",
            "Option 5", "Option 6", "Option 7", "Option 8", "Option 9",
            "Option 10", "Option 11", "Option 12", "Option 13", "Option 14",
            "Option 15"};

        JComboBox combo = new JComboBox(options);
        int result = JOptionPane.showConfirmDialog(
                null,
                combo,
                "Select One",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.WARNING_MESSAGE);
        if (result == JOptionPane.OK_OPTION) {
            System.out.println("Selected Index: " + combo.getSelectedIndex());
        } else {
            System.out.println("choice cancelled..");
        }

        // old way, for comparison..
        int displayoptions = JOptionPane.showOptionDialog(
                null,
                "select one",
                "Title",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.WARNING_MESSAGE,
                null,
                options,
                options[0]);
        System.out.println("displayoptions: " + displayoptions);
    }

    public static void main(String[] args) {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                ManyOptions o = new ManyOptions();
            }
        };
        SwingUtilities.invokeLater(r);
    }
}

这篇关于有没有办法为JOptionsPane.showOptionDialog设置布局?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆