"Add New Data Item"버튼을 클릭 한 후 꺾은 선형 차트를 생성하는이 응용 프로그램을 만들려고했습니다. 자, 버튼을 클릭 한 후에 아무 일도 일어나지 않습니다. (GUI가 멈 춥니 다.) 그리고 프레임을 최대화 한 후 그래프가 프레임 안에 표시됩니다.이 그래프는 내 프로그램이 작동하지만, GUI가 왜 멈추는 지 모릅니다. 나는 비슷한 질문을 보았고 사람들은 다른 작업을 처리하기 위해 새로운 스레드를 도입해야한다고 응답했으며, 시도해 보았지만 여전히 효과가 없었고, 더 악화되었다. 누구도 내가 만든 실수를 알고있다. 이리? 내 코드는 다음과 같습니다.Swing GUI freeches
import java.awt.BorderLayout;
import java.util.HashSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.DefaultXYDataset;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.RefineryUtilities;
public class ChartApp implements ActionListener {
static final JFrame frame = new JFrame("Chart");
public ChartApp(){
final JButton button = new JButton("Add New Data Item");
button.addActionListener(this);
frame.setSize(600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(button,BorderLayout.NORTH);
frame.setVisible(true);
}
public static void main(String[] args){
ChartApp app=new ChartApp();
}
public void actionPerformed(final ActionEvent e)
{
DefaultXYDataset dataSet = new DefaultXYDataset();
double[][] data = { {1,5,9}, {1, 5, 4} };
dataSet= createDataset(dataSet,data);
final JFreeChart chart = ChartFactory.createXYLineChart("Test Chart",
"x", "y", dataSet, PlotOrientation.VERTICAL, true, true,
false);
ChartPanel cp = new ChartPanel(chart);
frame.getContentPane().add(cp);
}
private static DefaultXYDataset createDataset(DefaultXYDataset dataSet,double[][]data) {
dataSet.addSeries("series1", data);
return dataSet;
}
}
고마워요!
오 잘 약간의 작업 예를 참조하십시오! – 3xpl0its