我有一个类,它读取一个Excel文件,并在jpanel中创建带有图形的框架。我通过jmenuitem中的actionlistener调用这个类。然后我有另一个jmenuitem,它调用打开同一文件的同一个类,但读取不同的excel工作表,并给出不同的图形(这是类中唯一更改的字符串)。包含这些jMenitem的jmenubar属于程序启动的jframe。我想知道,是否有可能每次我点击创建要添加到新jframe cardlayout中的图形的jmenuitems,这样我就可以在它们上滚动。提前谢谢
这是我当前用来在jframe中单击jmenuitem时打开图形的代码:
public class startup extends JFrame { // creates a jframe with some stuff and the jmenubar
public void menu() {
...
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event2) {
new Thread(new Runnable() {
@Override
public void run() {
new ReadExcel();
ReadExcel.excel(".xls", 0); // this jmenuitem invokes the class to read the excelfile sheet 0
graphgen.main(null);
}
}).start();
}
});
subsubmenu1.add(menuItem);
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event2) {
new Thread(new Runnable() {
@Override
public void run() {
new ReadExcel();
ReadExcel.excel(".xls", 1); // this jmenuitem invokes the class to read the excelfile sheet 1
graphgen.main(null);
}
}).start();
}
});
subsubmenu1.add(menuItem);
....
}
public static void main(String[] args)
{
GUIquery frame = new GUIquery();
p.add(graphComponent, BorderLayout.CENTER);
frame.setLayout(new BorderLayout());
frame.add(p, BorderLayout.CENTER);
frame.setJMenuBar(GUIquery.createMenuBar());
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);
frame.setSize(1600, 1200);
frame.setVisible(true);
}
}
readexcel类只读取Excel文件的Excel工作表,并返回一些在graphgen类中处理的arraylist。
public class graphgen extends JFrame {
public graphgen() {
super("Results");
gen();
}
public void gen(){
//creates the graphcomponent
getContentPane().add(graphComponent);
add(graphComponent);
}
public static void main(String[] args)
{
graphgen frame = new graphgen();
p2.add(graphComponent, BorderLayout.CENTER);
frame.add(p2, BorderLayout.CENTER);
frame.pack();
frame.setResizable(true);
frame.setSize(1600, 1200);
frame.setVisible(true);
}
使用Action
封装目标组件、文件和工作表,如下所示。添加一个方法,根据所选的工作表更新类的状态。在卡片之间导航的例子可以在这里和这里看到。另请参见此处引用的卡片布局操作。
我正在尝试在程序运行期间将 JButton 添加到坐在 JFrame 中的 JPanel 中。该按钮实际上可以正常工作(可单击),但不会显示。 我已经使用setLayout(null)将框架和面板的布局都设置为null 这里可能发生了什么? 编辑:我只是尝试在面板的构造函数中简单地向jPanel添加一个jtab,但即使这样也不行…
问题内容: 我在3个单独的类中有3个窗口,我想使用cardLayout,以便当你单击next按钮时,将出现下一个窗口。如何将包含不同元素的JPanels添加到一个cardLayout?这是第一个窗口:(尽管唯一的区别是背景-但它代表了我实际得到它的想法) 第二个窗口: 最后一个: 问题答案: 我做了一个小程序,希望程序中写的注释可以指导你了解如何使用CardLayout。
问题内容: 我有一个gui,它的Panel包含一系列标签和TextField,并使用spring布局(这是mainPanel),而另一个Panel仅包含button(buttonPanel)。我正在尝试使我的mainPanel也具有垂直滚动条。我想实现我的GUI,以便在JFrame中有2个面板。mainPanel出现在框架的顶部,而buttonPanel出现在mainPanel的下方。 我的问题是
我正在尝试将此 JPanel 添加到 JFrame 中,但我看不到他。当我创建新的 java 类并自己制作这个框架时,一切都很好。 来自JFrame表单的代码。 来自 JPanel 的代码: 来自Java类的代码。 我想不出区别在哪里。有人能帮我吗?
我正在创建一个swing应用程序,并希望将JfreeChart添加到JPanel中。我创建了一个方法,在该方法中我创建了如下所示的图表: 创建了一个全局变量: 由于某种原因,当我点击按钮时,图表没有显示出来。
我目前有一个主JFrame包含几个JPanels,每个面板中都有一些文本。创建JPanels的代码在一个单独的类中(它“实现”JPanels)。如何仅向单个面板添加JScrollPane? 我已经花了一些时间尝试这样做,但什么也没有发生。顺便说一下,我的JPanel使用GridLayout 上面的类是另一个面板类的实例变量,它是主面板“MenuHold”的实例变量。但使用“MenuHolder”的