java 选择图片 显示不出来的_JAVA 窗体选择图片显示在窗体中

package day01;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import javax.swing.*;

public class Java_3

{

public static void main(String[] args)

{

JFrame frame = new ImageViewerFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //用户单击窗口的关闭按钮时程序执行的操作

//*********Found**********

frame.setVisible(true); //让JFrame对象显示出来

}

}

class ImageViewerFrame extends JFrame

{

private JLabel label;

private JLabel labelT;

private JFileChooser chooser;

private JComboBox faceCombo;

private static final int DEFAULT_SIZE = 24;

public static final int DEFAULT_WIDTH = 570;

public static final int DEFAULT_HEIGHT = 400;

public ImageViewerFrame()

{

setTitle("ImageViewer");

setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

label = new JLabel(); //创建窗体

Container contentPane = getContentPane(); //创建容器

contentPane.add(label,BorderLayout.CENTER); //设置窗体大小

chooser = new JFileChooser(); //文件选择器

chooser.setCurrentDirectory(new File("."));

JMenuBar menuBar = new JMenuBar(); //菜单条

setJMenuBar(menuBar);

//*********Found**********

JMenu menu = new JMenu("File"); //负责创建菜单

menuBar.add(menu); //将菜单加入菜单条

JMenuItem openItem = new JMenuItem("Open"); //创建子菜单

//*********Found**********

menu.add(openItem); //将子菜单加入菜单条

openItem.addActionListener(new ActionListener() //监听子菜单的点击事件

{

public void actionPerformed(ActionEvent evt)

{

int r = chooser.showOpenDialog(null);

if(r == JFileChooser.APPROVE_OPTION)

{

//*********Found**********

String name = chooser.getSelectedFile().getPath(); //返回选中的文件名

label.setIcon(new ImageIcon(name)); //将返回选中的文件名显示在窗体中

}

}

});

labelT = new JLabel("红军不怕远征难"); //创建一个标签对象

labelT.setFont(new Font("隶书", Font.PLAIN, DEFAULT_SIZE));

contentPane.add(labelT, BorderLayout.NORTH );

faceCombo = new JComboBox(); //创建一个下拉组件对象

faceCombo.setEditable(true);

faceCombo.addItem("隶书");

faceCombo.addItem("华文新魏");

faceCombo.addItem("华文行楷");

faceCombo.addItem("华文隶书");

faceCombo.addActionListener(new

ActionListener()

{

public void actionPerformed(ActionEvent event)

{

//*********Found**********

labelT.setFont(new Font((String)faceCombo.getSelectedItem(),

Font.PLAIN, DEFAULT_SIZE));

}

});

JPanel comboPanel = new JPanel(); //面板容器

comboPanel.add(faceCombo); //将标签放入面板容器中

contentPane.add(comboPanel, BorderLayout.SOUTH); //将面板容器加入窗体中

}

}

标题运行结果如下

要实现Java窗体显示MySQL数据,可以使用Java Swing提供的JTable组件来实现。以下是实现步骤: 1. 导入MySQL数据库驱动包 在项目引入MySQL数据库的驱动包,可以使用JDBC连接MySQL数据库。 2. 连接MySQL数据库 使用JDBC连接MySQL数据库,创建一个Connection对象。 3. 查询MySQL数据库数据 使用JDBC执行SQL语句,查询需要显示的数据,并将结果保存在ResultSet对象。 4. 将查询结果转换为二维数组 遍历ResultSet对象,将查询结果转换为一个二维数组。 5. 创建JTable组件 使用JTable组件显示查询结果,创建一个JTable对象并将二维数组作为参数传入。 6. 将JTable组件添加到窗体 使用Java Swing提供的容器组件,如JFrame、JPanel等,将JTable组件添加到窗体。 以下是示例代码: ```java import java.sql.*; import javax.swing.*; import java.awt.*; public class DisplayTable extends JFrame { private JTable table; public DisplayTable() { setTitle("Display Table"); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 连接MySQL数据库 try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password"); // 查询MySQL数据库数据 Statement stmt = con.createStatement(); String query = "SELECT * FROM mytable"; ResultSet rs = stmt.executeQuery(query); // 将查询结果转换为二维数组 int rowCount = 0; while (rs.next()) { rowCount++; } rs.beforeFirst(); ResultSetMetaData rsmd = rs.getMetaData(); int columnCount = rsmd.getColumnCount(); Object[][] data = new Object[rowCount][columnCount]; int i = 0; while (rs.next()) { for (int j = 0; j < columnCount; j++) { data[i][j] = rs.getObject(j + 1); } i++; } // 创建JTable组件 table = new JTable(data, getColumnNames(rsmd)); // 将JTable组件添加到窗体 JScrollPane scrollPane = new JScrollPane(table); getContentPane().add(scrollPane, BorderLayout.CENTER); // 关闭MySQL数据库连接 rs.close(); stmt.close(); con.close(); } catch (Exception ex) { ex.printStackTrace(); } } // 获取查询结果的列名 private String[] getColumnNames(ResultSetMetaData rsmd) throws SQLException { int columnCount = rsmd.getColumnCount(); String[] columnNames = new String[columnCount]; for (int i = 1; i <= columnCount; i++) { columnNames[i - 1] = rsmd.getColumnName(i); } return columnNames; } public static void main(String[] args) { DisplayTable frame = new DisplayTable(); frame.setVisible(true); } } ``` 在以上示例代码,需要将“mydatabase”和“mytable”替换为实际使用的数据库和表名,将“root”和“password”替换为实际的MySQL数据库用户名和密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值