“Java任务:图书信息检索”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
第86行: 第86行:
 
图 3
 
图 3
  
[[文件:java9-14.png]]
+
[[文件:java9-14.png|700px]]
 
===向面板中添加元素===
 
===向面板中添加元素===
 
2.按照下图,把对应控件拖入窗体到指定位置,完成商品检索区域的构建,并设置各个控件的【Variable】属性:
 
2.按照下图,把对应控件拖入窗体到指定位置,完成商品检索区域的构建,并设置各个控件的【Variable】属性:

2018年5月30日 (三) 14:39的版本

任务描述

任务描述:图书信息检索

实现商品信息检索,如图9-1所示。

Java9-2.png

图 1商品信息检索

任务实现

初始代码

第一步:启动Eclipse,导入Java Project,工程名为Project0901。

package main;

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;

/*实训:Java任务:图书信息检索*/
public class BookListForm  {
	private JFrame frame;	
	/**
	 * 构造函数
	 */
	public BookListForm() {
		initialize();
	}
	
	/**
	 * 窗体初始化
	 */
	private void initialize() {
		frame = new JFrame();
		
		frame.setResizable(false);
		frame.getContentPane().setLayout(null);
		frame.setTitle("电商购物平台-商品查询页面");
		frame.setBounds(100, 100, 434, 430);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		frame.setVisible(true);
		setCenter(frame);
	}
	
	/**
	 * 窗体自动居中
	 * 
	 * @param window
	 */
	private void setCenter(JFrame window) {
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		int width = window.getWidth();
		int height = window.getHeight();
		window.setBounds((d.width-width)/2, (d.height-height)/2, width, height);
	}
	public JFrame getFrame() {
		return frame;
	}

	public void setFrame(JFrame frame) {
		this.frame = frame;
	}
	public static void main(String[] args) {
		
		BookListForm bookForm = new BookListForm();
     
		
	}
	
	
}

布局面板

第二步:完善商品信息检索界面。

1. 在BookListForm类上单击右键,选择 Open With WindowBuilder Editor,如图2所示

Java9-3.png

图 2 打开菜单

在类编写窗口的底部选择【Design】标签。

Java9-4.png

图 3

Java9-14.png

向面板中添加元素

2.按照下图,把对应控件拖入窗体到指定位置,完成商品检索区域的构建,并设置各个控件的【Variable】属性:

Java9-13.png

图 4 组件设置


分类下拉框的设置

  • 选中分类组合框,在左侧的Properties窗口中找到Model这栏,如图:

Java9-6.png

图 5 组合框设置

  • 点击上图的“…”添加如下图所示的三个分类:

Java9-7.png

图 6 组合框设置

表格的创建

按照下图,完成商品显示区域的构建:

Java9-8.png

图 1-8

  • 把JScrollPane拖到界面中,并拉伸成上图大小。
  • 把商品列表JTable嵌到JScrollPane:必须要把JTable控件拖入JScrollPane的Viewport区域中才能显示,拖入的区域如下图中的黄色区域所示:

Java9-9.png

图 7 JScollPane布局

  • 设置表头标题:

点击左侧控件列表中的JTable控件。

Java9-10.png

图 1-10

在属性列表中找到【model】,点击【…】打开表格编辑框:

Java9-11.png

图 8 表格编辑对话框

点击【Columns】区域的【Insert】插入一列, 在底部的列属性区域中设置【Title】为:书籍分类,设置列宽【Pref.width】为:164

按照以上步骤,依次添加如下表头信息:

列名:库存,列宽:70
列名:书籍作者,列宽:70
列名:书籍名称,列宽:150
列名:书籍编号,列宽:70

下部购买区域的创建

5. 按照下图,完成商品购买区域的构建:

Java9-12.png

图 9 商品购买区域

定义显示书籍数据的函数

private void showBooks(String name,int category) {
		BookDao dao=new BookDaoTesting();
		List<Book> books=dao.queryBook(name, category);
		//在表格中显示数据
		DefaultTableModel dt=(DefaultTableModel) tblBook.getModel();
		dt.setRowCount(0);
		//判断是否查询到了满足条件的书籍信息
		if(books==null||books.size()==0) {
			JOptionPane.showMessageDialog(frame, "没有满足条件的书籍信息","警告信息",JOptionPane.WARNING_MESSAGE);
			return;
		}
		for(int i=0;i<books.size();i++) {
			Book book=books.get(i);
			dt.insertRow(i, new Object[] {
					book.getBid(),book.getName(),book.getAuthor(),book.getNumber(),
					book.getCategory().toString()
			});
		}
} 

为查询按钮添加事件处理程序

btnQuery.addActionListener(e->{
			String name=txtBookName.getText();
			int category=cboCategory.getSelectedIndex();
			//显示书籍
			showBooks(name,category);
		});

设置初始化窗口时,加载所有数据

showBooks(null,0);

程序代码

package main;

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.DefaultComboBoxModel;
import java.awt.Font;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.awt.Color;

/*实训:Java任务:图书信息检索 初始代码*/
public class BookListForm  {
	private JFrame frame;	
	private JTextField textField;
	private JTable table;
	/**
	 * 构造函数
	 */
	public BookListForm() {
		initialize();
	}
	
	/**
	 * 窗体初始化
	 */
	private void initialize() {
		frame = new JFrame();
		
		frame.setResizable(false);
		frame.getContentPane().setLayout(null);
		
		JPanel panel1 = new JPanel();
		panel1.setBounds(10, 10, 408, 39);
		frame.getContentPane().add(panel1);
		panel1.setLayout(null);
		
		JLabel lblName = new JLabel("\u4F60\u597D\uFF0C");
		lblName.setBounds(10, 10, 54, 15);
		panel1.add(lblName);
		
		JLabel lblCity = new JLabel("\u6765\u81EA\u4E8E\uFF1A");
		lblCity.setBounds(250, 10, 54, 15);
		panel1.add(lblCity);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(0, 35, 408, 2);
		panel1.add(separator);
		
		JPanel panel2 = new JPanel();
		panel2.setBounds(10, 59, 408, 39);
		frame.getContentPane().add(panel2);
		panel2.setLayout(null);
		
		JLabel label = new JLabel("\u4E66\u7C4D\u540D\uFF1A");
		label.setBounds(10, 10, 54, 15);
		panel2.add(label);
		
		textField = new JTextField();
		textField.setBounds(56, 7, 79, 21);
		panel2.add(textField);
		textField.setColumns(10);
		
		JLabel label_1 = new JLabel("\u5206\u7C7B");
		label_1.setBounds(145, 10, 54, 15);
		panel2.add(label_1);
		
		JComboBox comboBox = new JComboBox();
		comboBox.setFont(new Font("宋体", Font.PLAIN, 10));
		comboBox.setModel(new DefaultComboBoxModel(new String[] {"\"- \u8BF7\u9009\u62E9 -\"", "\"\u5DE5\u5177\u7C7B > \u8F6F\u4EF6\u7F16\u7A0B\"", "\"\u5C0F\u8BF4\u7C7B > \u5386\u53F2\""}));
		comboBox.setBounds(186, 7, 98, 21);
		panel2.add(comboBox);
		
		JButton button = new JButton("\u67E5\u8BE2");
		button.setBounds(305, 6, 93, 23);
		panel2.add(button);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 116, 408, 204);
		frame.getContentPane().add(scrollPane);
		
		table = new JTable();
		table.setModel(new DefaultTableModel(
			new Object[][] {
			},
			new String[] {
				"\u4E66\u7C4D\u7F16\u53F7", "\u4E66\u7C4D\u540D\u79F0", "\u4E66\u7C4D\u4F5C\u8005", "\u5E93\u5B58", "\u4E66\u7C4D\u5206\u7C7B"
			}
		));
		table.getColumnModel().getColumn(1).setPreferredWidth(150);
		table.getColumnModel().getColumn(2).setPreferredWidth(70);
		table.getColumnModel().getColumn(3).setPreferredWidth(70);
		table.getColumnModel().getColumn(4).setPreferredWidth(164);
		scrollPane.setViewportView(table);
		
		JPanel panel3 = new JPanel();
		panel3.setBounds(10, 332, 408, 59);
		frame.getContentPane().add(panel3);
		panel3.setLayout(null);
		
		JLabel label_2 = new JLabel("\u8D2D\u7269\u8F66\u5546\u54C1\u6570\uFF1A0\u4EF6");
		label_2.setBounds(10, 21, 102, 15);
		panel3.add(label_2);
		
		JLabel label_3 = new JLabel("\u67E5\u770B\u8BE6\u60C5");
		label_3.setForeground(Color.BLUE);
		label_3.setBounds(143, 21, 54, 15);
		panel3.add(label_3);
		
		JButton button_1 = new JButton("\u8D2D\u4E70");
		button_1.setBounds(285, 17, 93, 23);
		panel3.add(button_1);
		frame.setTitle("电商购物平台-商品查询页面");
		frame.setBounds(100, 100, 434, 430);//前两个是组件左上角在容器中的坐标。
		//后两个是宽度和高度
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		frame.setVisible(true);
		setCenter(frame);
		
		
	}
	
	/**
	 * 窗体自动居中
	 * 
	 * @param window
	 */
	private void setCenter(JFrame window) {
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		int width = window.getWidth();
		int height = window.getHeight();
		window.setBounds((d.width-width)/2, (d.height-height)/2, width, height);
	}
	public JFrame getFrame() {
		return frame;
	}

	public void setFrame(JFrame frame) {
		this.frame = frame;
	}
	public static void main(String[] args) {
		
		BookListForm bookForm = new BookListForm();
     
		
	}
}

返回 Java程序设计