“Java任务:图书信息检索”的版本间的差异
来自CloudWiki
第85行: | 第85行: | ||
图 3 | 图 3 | ||
+ | |||
+ | [[文件:java9-14.png]] | ||
===向面板中添加元素=== | ===向面板中添加元素=== | ||
2.按照下图,把对应控件拖入窗体到指定位置,完成商品检索区域的构建,并设置各个控件的【Variable】属性: | 2.按照下图,把对应控件拖入窗体到指定位置,完成商品检索区域的构建,并设置各个控件的【Variable】属性: | ||
第92行: | 第94行: | ||
图 4 组件设置 | 图 4 组件设置 | ||
− | |||
− | + | ||
+ | ====分类下拉框的设置==== | ||
*选中分类组合框,在左侧的Properties窗口中找到Model这栏,如图: | *选中分类组合框,在左侧的Properties窗口中找到Model这栏,如图: | ||
第108行: | 第110行: | ||
图 6 组合框设置 | 图 6 组合框设置 | ||
− | + | ====表格的创建==== | |
+ | 按照下图,完成商品显示区域的构建: | ||
[[文件:java9-8.png]] | [[文件:java9-8.png]] | ||
第145行: | 第148行: | ||
列名:书籍编号,列宽:70</nowiki> | 列名:书籍编号,列宽:70</nowiki> | ||
+ | ====下部购买区域的创建==== | ||
5. 按照下图,完成商品购买区域的构建: | 5. 按照下图,完成商品购买区域的构建: | ||
第151行: | 第155行: | ||
图 9 商品购买区域 | 图 9 商品购买区域 | ||
− | + | ===定义显示书籍数据的函数=== | |
<nowiki>private void showBooks(String name,int category) { | <nowiki>private void showBooks(String name,int category) { | ||
第171行: | 第175行: | ||
}); | }); | ||
} | } | ||
− | } | + | }</nowiki> |
− | + | ===为查询按钮添加事件处理程序=== | |
− | + | <nowiki>btnQuery.addActionListener(e->{ | |
String name=txtBookName.getText(); | String name=txtBookName.getText(); | ||
int category=cboCategory.getSelectedIndex(); | int category=cboCategory.getSelectedIndex(); | ||
第180行: | 第184行: | ||
});</nowiki> | });</nowiki> | ||
− | + | ===设置初始化窗口时,加载所有数据=== | |
showBooks(null,0); | showBooks(null,0); | ||
==程序代码== | ==程序代码== | ||
− | <nowiki> | + | <nowiki>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() { | public BookListForm() { | ||
− | |||
initialize(); | initialize(); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | |||
/** | /** | ||
− | * | + | * 窗体初始化 |
*/ | */ | ||
private void initialize() { | private void initialize() { | ||
frame = new JFrame(); | frame = new JFrame(); | ||
+ | |||
frame.setResizable(false); | frame.setResizable(false); | ||
frame.getContentPane().setLayout(null); | 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"); | |
− | frame.getContentPane().add( | + | lblName.setBounds(10, 10, 54, 15); |
− | + | panel1.add(lblName); | |
− | + | ||
− | lblName | + | JLabel lblCity = new JLabel("\u6765\u81EA\u4E8E\uFF1A"); |
− | lblName.setBounds( | + | lblCity.setBounds(250, 10, 54, 15); |
− | + | panel1.add(lblCity); | |
− | + | ||
− | lblCity = new JLabel(" | ||
− | |||
− | lblCity.setBounds( | ||
− | |||
− | |||
JSeparator separator = new JSeparator(); | JSeparator separator = new JSeparator(); | ||
− | separator.setBounds( | + | separator.setBounds(0, 35, 408, 2); |
− | frame.getContentPane().add( | + | panel1.add(separator); |
+ | |||
+ | JPanel panel2 = new JPanel(); | ||
+ | panel2.setBounds(10, 59, 408, 39); | ||
+ | frame.getContentPane().add(panel2); | ||
+ | panel2.setLayout(null); | ||
− | JLabel | + | 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 | + | 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 | + | JButton button = new JButton("\u67E5\u8BE2"); |
− | + | button.setBounds(305, 6, 93, 23); | |
− | + | panel2.add(button); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
JScrollPane scrollPane = new JScrollPane(); | JScrollPane scrollPane = new JScrollPane(); | ||
− | scrollPane.setBounds(10, | + | scrollPane.setBounds(10, 116, 408, 204); |
frame.getContentPane().add(scrollPane); | frame.getContentPane().add(scrollPane); | ||
− | + | table = new JTable(); | |
− | + | table.setModel(new DefaultTableModel( | |
new Object[][] { | new Object[][] { | ||
}, | }, | ||
第311行: | 第285行: | ||
} | } | ||
)); | )); | ||
− | + | 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); | |
− | frame. | + | panel3.add(button_1); |
+ | frame.setTitle("电商购物平台-商品查询页面"); | ||
+ | frame.setBounds(100, 100, 434, 430);//前两个是组件左上角在容器中的坐标。 | ||
+ | //后两个是宽度和高度 | ||
+ | frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
− | + | frame.setVisible(true); | |
− | + | setCenter(frame); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | ||
/** | /** | ||
* 窗体自动居中 | * 窗体自动居中 | ||
第348行: | 第328行: | ||
int width = window.getWidth(); | int width = window.getWidth(); | ||
int height = window.getHeight(); | int height = window.getHeight(); | ||
− | window.setBounds((d.width - width) / 2, (d.height - height) / 2, width, | + | 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(); | ||
+ | |||
+ | |||
} | } | ||
} | } |
2018年5月30日 (三) 14:38的版本
目录
任务描述
任务描述:图书信息检索
实现商品信息检索,如图9-1所示。
图 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所示
图 2 打开菜单
在类编写窗口的底部选择【Design】标签。
图 3
向面板中添加元素
2.按照下图,把对应控件拖入窗体到指定位置,完成商品检索区域的构建,并设置各个控件的【Variable】属性:
图 4 组件设置
分类下拉框的设置
- 选中分类组合框,在左侧的Properties窗口中找到Model这栏,如图:
图 5 组合框设置
- 点击上图的“…”添加如下图所示的三个分类:
图 6 组合框设置
表格的创建
按照下图,完成商品显示区域的构建:
图 1-8
- 把JScrollPane拖到界面中,并拉伸成上图大小。
- 把商品列表JTable嵌到JScrollPane:必须要把JTable控件拖入JScrollPane的Viewport区域中才能显示,拖入的区域如下图中的黄色区域所示:
图 7 JScollPane布局
- 设置表头标题:
点击左侧控件列表中的JTable控件。
图 1-10
在属性列表中找到【model】,点击【…】打开表格编辑框:
图 8 表格编辑对话框
点击【Columns】区域的【Insert】插入一列, 在底部的列属性区域中设置【Title】为:书籍分类,设置列宽【Pref.width】为:164
按照以上步骤,依次添加如下表头信息:
列名:库存,列宽:70 列名:书籍作者,列宽:70 列名:书籍名称,列宽:150 列名:书籍编号,列宽:70
下部购买区域的创建
5. 按照下图,完成商品购买区域的构建:
图 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程序设计