Java SE 6之GUI:让界面更加绚丽(下)
JTable table = new JTable(model);
RowSorter sorter = new TableRowSorter(model);
table.setRowSorter(sorter);
import javax.swing.table.*;
import java.awt.*;
public class TestSortedTable
{
public static void main(String args[])
{
JFrame frame = new JFrame("JTable的排序测试");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 表格中显示的数据
Object rows[][] =
{
{ " 王明 ", "中国", 44 },
{ " 姚明 ", "中国", 25 },
{ " 赵子龙 ", "西蜀", 1234 },
{ " 曹操 ", "北魏", 2112 },
{ " Bill Gates ", "美国", 45 },
{ " Mike", "< /span>英国", 33 } };
String columns[] =
{ " 姓名 ", "国籍", "年龄" };
TableModel model = new DefaultTableModel(rows, columns);
JTable table = new JTable(model);
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table.setRowSorter(sorter);
JScrollPane pane = new JScrollPane(table);
frame.add(pane, BorderLayout.CENTER);
frame.setSize(300, 150);
frame.setVisible(true);
}
}
{
public Class getColumnClass(int column)
{
Class returnValue;
if ((column >= 0) && (column < getColumnCount()))
{
returnValue = getValueAt(0, column).getClass();
}
else
{
returnValue = Object.class;
}
return returnValue;
}
};
{
public void actionPerformed(ActionEvent e)
{
String text = filterText.getText();
if (text.length() == 0)
{
sorter.setRowFilter(null);
}
else
{
sorter.setRowFilter (RowFilter.regexFilter(text));
}
}
});
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
public class TestFilter
{
public static void main(String args[])
{
JFrame frame = new JFrame("JTable的过滤测试");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Object rows[][] =
{
{ " 王明 ", "中国", 44 },
{ " 姚明 ", "中国", 25 },
{ " 赵子龙 ", "西蜀", 1234 },
{ " 曹操 ", "北魏", 2112 },
{ " Bill Gates ", "美国", 45 },
{ " Mike", "< /span>英国", 33 } };
String columns[] =
{ " 姓名 ", "国籍", "年龄" };
TableModel model = new DefaultTableModel(rows, columns)
{
public Class getColumnClass(int column)
{
Class returnValue;
if ((column >= 0) && (column < getColumnCount()))
{
returnValue = getValueAt(0, column).getClass();
}
else
{
returnValue = Object.class;
}
return returnValue;
}
};
final JTable table = new JTable(model);
final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(
model);
table.setRowSorter(sorter);
JScrollPane pane = new JScrollPane(table);
frame.add(pane, BorderLayout.CENTER);
JPanel panel = new JPanel(new BorderLayout());
JLabel label = new JLabel("过滤");
panel.add(label, BorderLayout.WEST);
final JTextField filterText = new JTextField("");
panel.add(filterText, BorderLayout.CENTER);
frame.add(panel, BorderLayout.NORTH);
JButton button = new JButton("过滤");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String text = filterText.getText();
if (text.length() == 0)
{
sorter.setRowFilter(null);
}
else
{
sorter.setRowFilter (RowFilter.regexFilter(text));
}
}
});
frame.add(button, BorderLayout.SOUTH);
frame.setSize(300, 250);
frame.setVisible(true);
}
}
pane.setTabComponentAt(1, component);
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
public class TestTabbedPane
{
static void addIt(JTabbedPane tabbedPane, String text)
{
JLabel label = new JLabel(text);
JButton button = new JButton(text);
JPanel panel = new JPanel();
panel.add(label);
panel.add(button);
tabbedPane.addTab(text, panel);
if(text.equals ("tab4"))
tabbedPane.setTabComponentAt(tabbedPane.getTabCount() - 1,
new JTextField("插入了文本控件" ));
else
tabbedPane.setTabComponentAt(tabbedPane.getTabCount() - 1,
button);
}
public static void main(String args[])
{
JFrame f = new JFrame(" JTabbedPane演示");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTabbedPane tabbedPane = new JTabbedPane();
addIt(tabbedPane, "tab1");
addIt(tabbedPane, "tab2");
addIt(tabbedPane, "tab3");
addIt(tabbedPane, "tab4");
addIt(tabbedPane, "tab5");
f.add(tabbedPane, BorderLayout.CENTER);
f.setSize(400, 200);
f.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
public class TextPrint
{
public static void main(final String args[])
{
JFrame frame = new JFrame("打印测试");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextArea textArea = new JTextArea();
JScrollPane pane = new JScrollPane(textArea);
frame.add(pane, BorderLayout.CENTER);
textArea.setText("打印内容\r\n可以分页! " );
JButton button = new JButton("打印");
frame.add(button, BorderLayout.SOUTH);
ActionListener listener =new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
textArea.print();
}
catch (PrinterException pe)
{
System.err.println( "打印失败");
}
}
};
button.addActionListener(listener);
frame.setSize(250, 150);
frame.setVisible(true);
}
}
图7 打印界面
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.tree.*;
public class TestDrapDrop
{
public static void main(String args[])
{
JFrame f = new JFrame(" 拖放测试" );
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel top = new JPanel(new BorderLayout());
JLabel dragLabel = new JLabel("拖我:");
JTextField text = new JTextField();
text.setDragEnabled(true);
top.add(dragLabel, BorderLayout.WEST);
top.add(text, BorderLayout.CENTER);
f.add(top, BorderLayout.NORTH);
final JTree tree = new JTree();
final DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
tree.setTransferHandler(new TransferHandler()
{
public boolean canImport (TransferHandler.TransferSupport support)
{
if (!support.isDataFlavorSupported (DataFlavor.stringFlavor)
|| !support.isDrop())
{
return false;
}
JTree.DropLocation dropLocation = (JTree.DropLocation) suppor
.getDropLocat ion();
return dropLocation.getPath() != null;
}
public boolean importData (TransferHandler.TransferSupport support)
{
if (!canImport(support))
{
return false;
}
JTree.DropLocation dropLocation = (JTree.DropLocation) support
.getDropLocat ion();
TreePath path = dropLocation.getPath();
Transferable transferable = support.getTransferable();
String transferData;
try
{
transferData = (String) transferable
& nbsp; .getTransferData(DataFlavor.stringFlavor);
}
catch (IOException e)
{
return false;
}
catch (UnsupportedFlavorException e)
{
return false;
}
int childIndex = dropLocation.getChildIndex();
if (childIndex == -1)
{
childIndex = model.getChildCount(path
& nbsp; .getLastPathComponent());
}
DefaultMutableTreeNode newNode = newDefaultMutableTreeNode(
transferData) ;
DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) path
.getLastPathC omponent();
model.insertNodeInto (newNode, parentNode, childIndex);
TreePath newPath = path.pathByAddingChild(newNode);
tree.makeVisible(newPath);
tree.scrollRectToVisible(tree.getPathBounds(newPath));
return true;
}
});
JScrollPane pane = new JScrollPane(tree);
f.add(pane, BorderLayout.CENTER);
JPanel bottom = new JPanel();
JLabel comboLabel = new JLabel("DropMode");
String options[] =
{ "USE_SELECTION", "ON", "INSERT", "ON_OR_INSERT" };
final DropMode mode[] =
{ DropMode.USE_SELECTION, DropMode.ON, DropMode.INSERT,
DropMode.ON_OR_INSERT };
final JComboBox combo = new JComboBox(options);
combo.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
int selectedIndex = combo.getSelectedIndex();
tree.setDropMode(mode[selectedIndex]);
}
});
bottom.add(comboLabel);
bottom.add(combo);
f.add(bottom, BorderLayout.SOUTH);
f.setSize(300, 400);
f.setVisible(true);
}
}
0
分享
收藏
360篇文章,163W+人气,85粉丝
欧瑞科技创始人&CEO,IT畅销书作家,
Ctrl+Enter 发布
发布
取消
推荐专栏
自动化运维开发新概念
共20章 | 抚琴煮酒
¥51.00 299人订阅
大数据时代的微服务之路
共18章 | 纯洁微笑
¥51.00 611人订阅
猜你喜欢
扫一扫,领取大礼包
0
专栏作者 androidguy
Java SE 6之GUI:让界面更加绚丽(下)相关推荐
- Java SE 6之GUI:让界面更加绚丽(上)
Java是一种非常强大的编程语言,但Java的GUI能力一直是它的软肋.虽然Java提供2种图形解决方案,AWT和Swing.但这2种图形库的功能十分有限,使用它们并不能带来更多的用户体验.而且AWT ...
- Java SE 16新版本特性(中文注释说明)
目录 合并发行说明 JDK 16 发行说明 Introduction/介绍 IANA 数据 2020d JDK 16 的新功能和增强功能 已删除的功能和选项 甲骨文 JDK 与甲骨文开放 JDK 的区 ...
- Java实现人民币大写+GUI界面
项目资源下载链接Java实现人民币大写+GUI界面 文章标题 1.提要 2.算法 3. 代码 (1)界面:windowbuilder插件的使用 (2)实现人民币转换的类 Convert.java (3 ...
- Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 )
Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 ) 文章目录 Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 ) 1.J ...
- 当年我们一起追过的Java,Java SE 个人笔记
目录 JDK的安装和配置运行Java程序 java基本语法 面向对象 异常 多线程l API(Application Programming Interface)各种功能的类说明 集合类 IO输入输出 ...
- Java SE 基础知识
Java SE 基础知识 1 2 @(Notes)[J2SE, Notes] VICTORY LOVES PREPARATION. 特别说明: 该文档在马克飞象查阅最佳: 本部分知识还在迭代中,欢迎补 ...
- Python升级之路( Lv11 ) GUI图形界面编程
Python系列文章目录 第一章 Python 入门 第二章 Python基本概念 第三章 序列 第四章 控制语句 第五章 函数 第六章 面向对象基础 第七章 面向对象深入 第八章 异常机制 第九章 ...
- 【读书笔记】《写给大忙人看的Java SE 8》——Java8新特性总结
2019独角兽企业重金招聘Python工程师标准>>> 阅读目录 接口中的默认方法和静态方法 函数式接口和Lambda表达式 Stream API 新的日期和时间 API 杂项改进 ...
- 零基础学JAVA]Java SE基础部分-01. Java发展及JDK配置
1.课程名称:Java发展及JDK配置 本季介绍了JAVA的发展过程,包括JDK的发展历程,path路径的配置和classpath的配置及作用.并简单讲解了一个简单的JAVA程序,并通过此程序讲解了J ...
最新文章
- R语言基本描述性统计量函数
- IBM发布人脸识别最强工具,多样性数据集,100万张人脸图像!
- 力扣:169. 多数元素
- 学习笔记:文本过滤_____unix 下的通配符
- 贪心问题JAVA_java背包问题(贪心法)
- git报ssh variant 'simple' does not support setting port解决办法
- 利用windows优化大师软件卸载一手和清理一招
- MongoDB via Dotnet Core数据映射详解
- 移动云TeaTalk:这是一场云数据库技术的深度对话!
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- 【英语学习】【WOTD】grift 释义/词源/示例
- [转载][奇文共赏].由入门到精通 - 吃透PID2.0.PDF
- C++/mfc错误总结
- Spark SQL 源代码分析之Physical Plan 到 RDD的详细实现
- 基于VLC的视频播放器
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
- matlab画一条平滑曲线,Matlab画平滑曲线的两种方法( 拟合或插值后再用plot即可)...
- java学习之SpringBoot2
- Vue Cannot read property ‘xxx‘ of undefined
- Android 4.0 SDK新特性
热门文章
- python 调用rpc服务_在Django项目中对Python函数进行RPC调用的优雅方式
- 计算机教师职称申报工作总结,个人评定一级教师工作总结
- linux离线安装httpd服务,Linux系列之离线安装Apache HTTP
- java remove map_Java HashMap remove()方法
- 服务器装哪个操作系统好,服务器装哪个操作系统好
- java stream map
- TensorFlow tf.keras.layers.DenseFeatures
- 泰语7个元音变形_泰语发音规则
- VMware vRealize Operations Manager的内部版本号(2145975)
- VSAN常见故障2018-11-06