java - 防止 Java 框架的多个实例

标签 java swing jframe visibility

我正在开发的应用程序涉及根据用户选择从 JPanel 创建的框架。我试图阻止用户在选择同一项目两次时启动同一帧的多个实例。这是我为此目的编写的条件。

主类:

public void showPieGraphFrame()
{
    final PieGraph gPieGraph = new PieGraph("Traffic Type Distribution", counterOne, counterTwo);
    gPieGraph.pack();
    RefineryUtilities.positionFrameOnScreen(gPieGraph, 0.35, 0.03);

    if(!gPieGraph.isVisible())  
    {
    gPieGraph.setVisible(true);
    }
}

我想要防止多个实例的 PieGraph 类:

public class PieGraph extends ApplicationFrame implements ActionListener {

    public PieGraph(final String title) {
        super(title);

        // create a menubar
        setJMenuBar(createMenuBar());

        // create a dataset...
        final PieDataset dataset = trafficTypeDataset();

        // create the chart...
        final JFreeChart chart = createChart(dataset);

        // add the chart to a panel...
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(width, height));
        setContentPane(chartPanel);
    }

    private JFreeChart createChart(final PieDataset dataset) {

        final JFreeChart chart = ChartFactory.createPieChart("Test Chart", dataset, false, false, false);

        final PiePlot plot = (PiePlot) chart.getPlot();

        return chart;
    }

但是,它不起作用,您仍然可以多次启动同一框架。我怎样才能防止这种情况发生?

最佳答案

How can I prevent this?

将框架交换为模态 JDialogJOptionPane

关于java - 防止 Java 框架的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009816/

相关文章:

java - JFrame 的边框布局定位不符合预期

java - 在 JFrame 中绘制矩形不起作用

java - 将 ArrayList 字符串值转换为字节数组

java - 没有可用的 'xxx.dao.AreaDao' 类型的合格 bean : expected at least 1 bean which qualifies as autowire candidate

java - 锁定具有非透明 Activity 的 Android API 27 时的屏幕方向

java - 什么是 JPanel、JFrame、JLayeredPane 和 JRootpane

java - Android:存储图像的引用

java - 使用 mouseentered 事件突出显示多边形

Java:调用静态方法但没有任何反应?

java - 居中 JFrame 在子子类中不起作用