java - JFreeChart 在 Eclipse 中不显示任何内容

标签 java eclipse swing jfreechart

我是 JFreeCharts 的初学者,但是,这是我第一次过期,但我的程序没有显示任何内容,eclipse 说它正在运行,但没有窗口或任何显示。当然,我确保尝试了适当的范围,例如 .validate 或 .setVisible true...

package at.htlklu.chart;

import java.awt.BorderLayout;

public class ChartsExperiments extends JFrame {

    private JPanel contentPane;
    private JTextField txt_1;
    private JTextField txt_2;
    private JTextField txt_3;
    private JTextField txt_4;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ChartsExperiments frame = new ChartsExperiments();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ChartsExperiments() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 852, 719);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        final JPanel panel = new JPanel();
        panel.setBackground(Color.LIGHT_GRAY);
        panel.setBounds(6, 6, 840, 447);
        contentPane.add(panel);
        panel.setLayout(new BorderLayout(0, 0));

        JLabel lblStat1 = new JLabel("statistic_1");
        lblStat1.setBounds(6, 465, 75, 16);
        contentPane.add(lblStat1);

        JLabel lblStat2 = new JLabel("statistic_2");
        lblStat2.setBounds(93, 465, 75, 16);
        contentPane.add(lblStat2);

        JLabel lblStat3 = new JLabel("statistic_3");
        lblStat3.setBounds(180, 465, 75, 16);
        contentPane.add(lblStat3);

        JLabel lblStat4 = new JLabel("statistic_4");
        lblStat4.setBounds(267, 465, 75, 16);
        contentPane.add(lblStat4);

        JButton btnView = new JButton("View");
        btnView.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                int s1 = Integer.parseInt(txt_1.getText());
                int s2 = Integer.parseInt(txt_2.getText());
                int s3 = Integer.parseInt(txt_3.getText());
                int s4 = Integer.parseInt(txt_4.getText());

                DefaultCategoryDataset dataset = new DefaultCategoryDataset();

                dataset.setValue(s1, "", "Statistic_1");
                dataset.setValue(s2, "", "Statistic_2");
                dataset.setValue(s3, "", "Statistic_3");
                dataset.setValue(s4, "", "Statistic_4");

                JFreeChart chart = ChartFactory.createBarChart("Statistics", "", "", dataset, PlotOrientation.HORIZONTAL, false, false, false);
                CategoryPlot catPlot = chart.getCategoryPlot();
                catPlot.setRangeGridlinePaint(Color.BLACK);

                ChartPanel chartPanel = new ChartPanel(chart);
                chartPanel.setVisible(true);
                panel.removeAll();
                panel.setVisible(true);
                panel.add(chartPanel, BorderLayout.CENTER);
                panel.validate();


            }
        });
        btnView.setBounds(389, 489, 117, 29);
        contentPane.add(btnView);

        txt_1 = new JTextField();
        txt_1.setBounds(6, 488, 75, 28);
        contentPane.add(txt_1);
        txt_1.setColumns(10);

        txt_2 = new JTextField();
        txt_2.setColumns(10);
        txt_2.setBounds(93, 488, 75, 28);
        contentPane.add(txt_2);

        txt_3 = new JTextField();
        txt_3.setColumns(10);
        txt_3.setBounds(180, 488, 75, 28);
        contentPane.add(txt_3);

        txt_4 = new JTextField();
        txt_4.setColumns(10);
        txt_4.setBounds(267, 488, 75, 28);
        contentPane.add(txt_4);
    }
}

最佳答案

你确定吗?我复制并尝试了你的程序,它执行得很好。

enter image description here

关于java - JFreeChart 在 Eclipse 中不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27856388/

相关文章:

java - return 语句中带有常量变量的三元运算符。返回 a>b?a :b + 1; or return 1 + a>b? a:b;

java - 如何使用 actionbarsherlock 创建自定义下拉菜单?

eclipse - 在 Debug模式下启动服务器时阻止 Eclipse 自动打开调试透视图

java - 如何在 Eclipse 中按名称查找包?

java - 访问循环中创建的各个 JTextField 的值

java - 具有 2 个数据源事件处理的 JSlider

java - 模拟构造函数以查看它是否抛出异常

java - GwtUpload Servlet 错误

c++ - eclipse cdt 中未解析的外部符号

java - 如何通过箭头键禁用 JSpinner 的键盘控制?