- JPanel和AWT中的Panel组件使用方法基本一致,它是一个无边框,不能被移动、放大、缩小或者关闭的面板,它的默认布局管理器是FlowLayout。当然也可以使用JPanel带参数的构造函数JPanel(LayoutManager layout)或者它的setLayout()方法为其制定布局管理器。
-
与JPanel不同的是,JScrollPane是一个带有滚动条的面板容器,而且这个面板只能添加一个组件,如果想在JScrollPane面板中添加多个组件,应该先将组件添加到JPanel中,然后将JPanel添加到JScrollPane中。
-
JScrollPane的常用构造方法,如表所示.
package Interface;
import dao.RiverDao;
import deal.SettingColorDeal;
import exception.riverException;
import model.River;
import javax.swing.*;
import java.awt.*;
import java.util.List;
/**
-
Created with IntelliJ IDEA.
-
Description: If you don’t work hard, you will a loser.
-
User: Listen-Y.
-
Date: 2020-09-05
-
Time: 11:38
*/
public class ShowAllRivers extends JFrame {
//使用表格和滚动面板实现河流信息的展示
private JTable table;
private JScrollPane pane;
public ShowAllRivers() {
this.setSize(1000, 500);
this.setTitle(“显示所有河流信息”);
this.setLayout(null);
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//this.setLocationRelativeTo(null); //点击一个关闭所有并退出程序
if (SettingColorDeal.theme != null) {
this.getContentPane().setBackground(SettingColorDeal.theme);
}
this.setResizable(false);
this.setVisible(true);
//获取所有河流信息
RiverDao dao = new RiverDao();
try {
//从数据库中获取信息
List rivers = dao.SelectAll();
init(rivers);
} catch (riverException e) {
JOptionPane.showMessageDialog(this, “获取信息异常!”);
}
}
private void init(List rivers) {
//设置表格标题 和表格信息
String[] titles = new String[] {“河流编号”, “河流名称”, “河流长度”, “地理位置”, “河流类型”, “治理情况”};
String[][] values = new String[rivers.size()][6];
for (int i = 0; i < rivers.size(); i++) {
River river = rivers.get(i);
values[i][0] = String.valueOf(river.getRiver_num());
values[i][1] = river.getRiver_name();
values[i][2] = river.getRiver_length() + " (Km)";
values[i][3] = river.getRiver_location();
values[i][4] = river.getRiver_class();
values[i][5] = river.getRiver_status();
}
//初始化表格和滚动面板
table = new JTable(values, titles);
table.getTableHeader().setFont(new Font(“标楷体”,Font.BOLD,16));
table.setFont(new Font(“”,0,16));
pane = new JScrollPane(table);