- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 java swing 应用程序,它从文本字段收集数据并将其存储在数据库中。我有一个 JmenuItem,我想用它来显示数据库中的数据。我有一个类从数据库收集数据并将数据插入到 jtable 中。该类扩展了 jframe。现在我遇到的问题是从 jmenuitem 执行该类。当我单击 jmenuitem 时,它会显示一个没有表格的空 jframe。
这里是带有 jtable 的类的代码。类(class)是Reports2
public class Reports2 extends JFrame {
Connection con = null;
Statement st;
ResultSet rs;
public static void main(String[]args) throws Exception {
try {
Connection con= null ;
Statement st;
ResultSet rs;
String url = "jdbc:mysql://localhost:3306/first";
String user = "root";
String password = "Admin123";
try{
con = DriverManager.getConnection(url,user,password);
st = con.createStatement();
String qry = "SELECT * FROM request";
rs = st.executeQuery(qry);
JTable table = new JTable(buildTableModel(rs));
JFrame frame = new JFrame("Reports");
frame.setSize(800, 700);
frame.add(table);
frame.setVisible(true);
} catch (SQLException ex) {
Logger.getLogger(Reports2.class.getName()).log(Level.SEVERE, null, ex);
}
}catch(Exception e){
}}
public static DefaultTableModel buildTableModel(ResultSet rs) throws Exception{
ResultSetMetaData metaData = rs.getMetaData();
Vector<String> columnNames = new Vector <String>();
int columnCount = metaData.getColumnCount();
for(int column = 1; column<=columnCount;column++){
columnNames.add(metaData.getColumnName(column));
}
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while(rs.next()){
Vector<Object> vector = new Vector<Object>();
for(int columnIndex =1;columnIndex<= columnCount;columnIndex++){
vector.add(rs.getObject(columnIndex));
}
data.add(vector);
}
return new DefaultTableModel(data, columnNames);
}
}
这是 jmenuitem 的代码。 Jmenuitem 变量名为 get_reports。
private void get_reportActionPerformed(java.awt.event.ActionEvent evt) {
Reports2 report = new Reports2();
report.setSize(800, 700);
report.setVisible(true);
最佳答案
您的 Reports2
类中不需要 main
方法。您的主框架类已经有一个可以从中启动的 main
。取出 main
方法,并将该 main
中的所有内容包装在 Report2
构造函数中
您的 Reports2
类已经是一个 JFrame
,但您正在创建另一个 JFrame
。不要那样做。而只是添加
到类JFrame
JTable table = new JTable(buildTableModel(rs));
//JFrame frame = new JFrame("Reports"); <--- take this out
//frame.setSize(800, 700); <--- don't set size, just pack
setTitle("Reports"); <--- set title
add(new JScrollPane(table)); <--- add to scrollpane
pack(); <--- pack
setVisible(true); <--- set visible
请注意我如何取出 JFrame,因为该类已经是一个 JFrame
如上所示,我使用 .pack()
这是首选,而不是设置大小
最后,您在 actionPerformed 中所需要做的就是实例化 Reports2
,就是这样
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt)
{
Report2 report = new Report2();
}
我运行了它,经过上述修复后它工作得很好。如果您的 SQL 是正确的,它也应该为您运行。
<小时/>旁注:永远、永远不要吞下你的异常(exception)
} catch (Exception ex) {
}
放置一些有意义的内容,让您可以看到抛出了哪些异常(如果有)。
} catch (Exception ex) {
ex.printStackTrace();
}
<小时/>
另外我会考虑使用JDialog
(而不是第二个JFrame
),因为您可以控制它的模式。创建 JDialog
与创建 JFrame
一样简单。这几乎是完全相同相同的过程
关于java - 单击时 JMenuItem 显示一个空的 Jframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21088324/
我有这个代码: JMenuItem itemA; JMenuItem itemB; JMenuItem itemC; JMenuItem[] items = {itemA, itemB, itemC}
如何防止 JMenuItem 在单击 JMenuItem 时关闭菜单? JMenuItem 已启用。 这就是场景,我有 3 个 JMenuItems: JMenuItem: A, B, C; C 显示
我有一个 JPopupMenu 并在其中插入一些 JMenuItems。我需要的是一个看起来与普通母鹿相同但不可单击的 JMenuItem。 我尝试过: JPopupMenu popmen = new
我有一个 JMenu,其中填充有来自具有监听器的数据库中的 JMenuItems,其中之一是从数据库中删除条目(如果选择)。发生这种情况时,JMenuItem 应该从菜单中消失。这是一个简短的例子 f
我正在尝试在 JMenuBar 上创建一个帮助按钮。目前我可以使用这个使其向右对齐 helpItem.setComponentOrientation(ComponentOrientation.RIGH
我正在尝试通过单击文件菜单栏中的菜单项来加载特定文件 (C://myfile.txt),我需要帮助来完成代码的操作部分 JMenuBar menuBar = new JMenuBar(); JMenu
是否可以创建一个包含复选框列表的自定义 JMenuItem?示例是 Excel 过滤器弹出菜单: 到目前为止,我所做的是这样的: JPopupMenu headerPopup = new JPopup
此代码将用户最喜欢的歌曲从 ArrayMap 添加到 JmenuItem public void actionPerformed(ActionEvent evt) { Stri
如何将 JMenuItem (newItem) 添加到 JMenu (menuUsers)?是否有合适的 ActionListener 用于此目的?有一部分代码执行将菜单项添加到菜单的操作。它在引发某
我的 inv 终于可以工作了! :D 但是,你知道...现在...这很愚蠢。我希望它在我右键单击时显示“使用项目 1”或其他内容,所以我这样做: if (actItemx == "It
我有一个带有 JMenuBar 的框架。当我按下 JMenuItems 之一时,我想向框架添加一个 JLabel ,但它不起作用。我不明白……这是同一个类(class)的。 public class
JMenuItem 具有以下构造函数:(来源: GrepCode ) public JMenuItem(Action a) { this(); setAction(a); } 但是,当
我创建了一个带有颜色的 3x3 内存游戏。程序运行并显示颜色,但 JMenuBar 无法正常工作。新棋盘、游戏和结束游戏按钮不起作用。我的 Actionlistener 有问题吗? 这就是代码应该如何
我将菜单添加到工具栏,如下所示: JMenuBar menu = new JMenuBar(); JMenu actions = new JMenu("Aktionen");
我想为颜色列表添加每个菜单项行,但有类似的错误 "at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)" 在我的
所以我必须在 Swing 中为我的 Java 类创建一个简单的 GUI,我偶然发现了这个小的装饰性问题。 我有以下代码: JMenuItem mntmQuit = new JMenuItem(
我试图添加一些菜单,想知道如何在第二个 menuItem 之后添加边框 就这样 Image Here 这是我的代码 jmb = new JMenuBar(); jmb.setPreferredSize
我想为 JMenuItem 设置快捷键。 我现在是这样设置的 openFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionE
我自动生成一组 JMenuItem 并将它们添加到每个右键单击事件的 JPopUpMenu 中。问题是当我在所选菜单上按回车键时,我为菜单项设置的操作没有运行。我可以使用向上/向下键在菜单上导航,但是
我有一个带有标准项和快捷方式的 JMenuBar。但是我注意到快捷方式描述是左对齐的,看起来很难看。有办法右对齐吗? PS:“Umschalt”表示转变。有没有办法强制它说 shift 而不是 Ums
我是一名优秀的程序员,十分优秀!