这是我在这里的第一篇文章,但绝望的时候需要绝望的举动。我的问题是我用按钮创建了一个JFrame,其他按钮显示了我的项目(每个下一个按钮显示单击前一个按钮时(代码包含如果和 else )。当点击倒数第二个按钮(最后一个 else )时,它会完成项目的最后一部分并显示,让我们调用它,"创建图表&#34 ;按钮。我想要做的是在点击此按钮后显示新框架,该按钮将在新框架中显示图表。这是我的代码(缩短和简化以显示想法):
public class clazz extends JFrame
{
static JButton // my buttons
static JLabel //my labels
static JCheckBox // my checkBoxes
static JTextField // my textfields
public double //declaration of my variables
public clazz()
{
setSize(1600,900);
setTitle("Project");
setLayout(null);
// created and set up lots of buttons/labels/textfields etc.
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Button1();}});
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Button2();}});
// and it continues like that
}
public void Button1()
{
//sth
}
public void Button2()
{
//sth
}
// and continues like that
public static void main(String[] args)
{
clazz aplication = new clazz();
aplication.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aplication.setVisible(true);
}
}
出于我的问题的目的,让我们说button3将是创建图表的那个(在另一个框架中)。如何根据之前按钮生成的数据获取带有图表的新框架。我看到的所有其他主题都使用一个新的类来做图表,那些不是为我复杂的(我是一条鱼)。
感谢您的帮助!
修改
完成它!如果您了解我感兴趣的更简单的方式。
// the beginning is the same
// to the last button in the constructor (let's say the third one) I've added method chartt()
// here's the method chartt()
public void chartt() {
JFrame frame = new JFrame();
XYSeries DATA = new XYSeries("");
matrix1 = new double[641];
matrix2 = new double[641];
for (int x=0; x<=640; x++)
{
matrix1[x]= pressure(x*1000); //pressure is defined in another method with argument x
matrix2[x] = x;
}
for (int y=0;y<=640;y++)
{
DATA.add(matrix2[y], matrix1[y]);
}
XYDataset xyDataset = new XYSeriesCollection(DATA);
JFreeChart chart = ChartFactory.createXYLineChart(
"", "", "",
xyDataset, PlotOrientation.VERTICAL, true, true, false);
ChartPanel cp = new ChartPanel(chart)
{
public Dimension getPreferredSize()
{
return new Dimension(600, 600);
}
};
cp.setMouseWheelEnabled(true);
add(cp);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
frame.add(cp);
frame.setVisible(true);
}
祝大家好运!
答案 0 :(得分:0)
我从你的问题中得到的是,当你点击最后一个按钮时,另一个JFrame(可能你已经设计过它)让我们知道必须显示XYZ。 XYZ将包含由您设计的图表。
所以在ActionPerformed
事件中你需要编写以下代码:
XYZ x = new XYZ();
x.setVisible(true);
this.dispose(); // use this line if you wish to close the first frame with buttons.
希望它有所帮助。如果您还有其他问题,请在评论中提及。