1、JDBC概述

JDBC提供了一种与平台无关的用于执行SQL语句的标准JavaAPI,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成

主要常用操作类与接口:

java.sql.DriverManager 用于管理jdbc驱动程序

Java.sql.Connection 用于建立与特定数据库的连接

Java.sql.Statement 一个Statement的对象用于执行静态sql语句,并获得语句执行后产生的后果

Java.sql.PreparedStatement 创建一个可以编译的sql语句对象,该对象可以多次被运行,以提高执行效率,是Statement的子接口

Java.sql.ResultSet 用于创建表示sql语句检索结果的结果集,用户通过结果集完成对数据库的访问

2、JDBC操作步骤

(1)加载驱动

public class Text {
public static final String DBDRIVER="ora.gjt.mm.mysql.Driver";
public static void main(String[] args) {
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} }

(2)连接数据库:使用DriverManager类连接数据库和Connection接口

jdbc:mysql://IP地址:端口号/数据库名称

(3)通过Statement发送sql语句

通过Prepared Statement发送sql语句

(4)关闭数据库

3、MySQL数据库操作

数据库连接

mysql -u用户名 -p密码

数据库创建

创建数据库 CREATE DATABASE 数据库名称;

数据库删除 DROP DATABASE 数据库名称;

使用数据库

USE 数据库名称;

创建数据库表

CREATE TABLE{
字段名称1 字段类型 [DEFAULT 默认值][约束]
字段名称2 字段类型 [DEFAULT 默认值][约束],
...,
字段名称n 字段类型 [DEFAULT 默认值][约束],

删除数据库表 DELETE FROM 表名称

更新 UPDATE 表名称

查询 SELECT{*lcolumn alias} FROM 表名称

记事本

package lastwork;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.Transferable; import javax.swing.event.UndoableEditListener;
import javax.swing.text.View; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date; import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager; import org.w3c.dom.Text; import jdk.jshell.execution.Util; public class TextPad extends dialog implements ActionListener, DocumentListener{ JFrame frame;
JMenu fileMenu,editManu,formatMenu,checkMenu,helpMenu;
JMenuBar bar;
ImageIcon openicon,newicon,saveicon,saveanothericon,closeicon,linewrapicon;
JMenuItem openitem,newitem,saveitem,saveanotheritem,closeitem,pageitem,pointitem;
JMenuItem repealitem,cutitem,copyitem,stickitem,deleteitem,allitem,timedateitem,finditem,findnextitem,replaceitem,turnitem;
JMenuItem prepealitem,pcutitem,pcopyitem,pstickitem,pdeleteitem,pallitem,ptimedateitem;
JMenuItem linewrapitem,fontitem;
JMenuItem checkhelpitem,aboutitem;
JMenuItem stateitem;
JTextArea area;
JScrollPane scpane;
JFileChooser chooser;
File file;
JButton bt;
JPopupMenu pMenu;
boolean i=false;
boolean isNewFile=true;
File currentFile;
String oldValue;
JLabel statusLabel;
//系统剪贴板
Toolkit toolkit=Toolkit.getDefaultToolkit();
Clipboard clipBoard=toolkit.getSystemClipboard();
//创建撤销操作管理器(与撤销操作有关)
protected UndoManager undo=new UndoManager();
protected UndoableEditListener undoHandler=new UndoHandler(); public TextPad(){
frame=new JFrame("记事本");
bar=new JMenuBar();
fileMenu=new JMenu("文件(F)");
editManu=new JMenu("编辑(E)");
formatMenu=new JMenu("格式(O)");
checkMenu=new JMenu("查看(V)");
helpMenu=new JMenu("帮助(H)");
statusLabel=new JLabel(" 状态栏");
frame.add(statusLabel,BorderLayout.SOUTH);
area=new JTextArea();
scpane=new JScrollPane(area);
pMenu=new JPopupMenu(); //图片导入路径
newicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"new.png");
openicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"open.png");
saveicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"save.png");
saveanothericon=new ImageIcon("d:"+File.separator+"111"+File.separator+"saveanother.png");
closeicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"close.png");
linewrapicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"d.png"); //调用图片
newitem=new JMenuItem("新建(N)",newicon);
openitem=new JMenuItem("打开(O)",openicon);
saveitem=new JMenuItem("保存(S)",saveicon);
saveanotheritem=new JMenuItem("另存为(A)",saveanothericon);
closeitem=new JMenuItem("关闭(X)",closeicon);
pageitem=new JMenuItem("页面设置(U)");
pointitem=new JMenuItem("打印(P)"); repealitem=new JMenuItem("撤销(U)");
cutitem=new JMenuItem("剪切(T)");
copyitem=new JMenuItem("复制(C)");
stickitem=new JMenuItem("粘贴(V)");
deleteitem=new JMenuItem("删除(L)");
finditem=new JMenuItem("查找(F)");
findnextitem=new JMenuItem("查找下一个(FN)");
replaceitem=new JMenuItem("替换(H)");
turnitem=new JMenuItem("转到(G)");
allitem=new JMenuItem("全选(A)");
timedateitem=new JMenuItem("时间/日期(D)"); linewrapitem=new JMenuItem("自动换行(W)",linewrapicon);
fontitem=new JMenuItem("字体(F)"); stateitem=new JMenuItem("状态栏(S)"); checkhelpitem=new JMenuItem("查看帮助(H)");
aboutitem=new JMenuItem("关于(A)"); //添加为菜单项
fileMenu.add(newitem);
fileMenu.add(openitem);
fileMenu.add(saveitem);
fileMenu.add(saveanotheritem);
fileMenu.addSeparator();
fileMenu.add(pageitem);
fileMenu.add(pointitem);
fileMenu.addSeparator();
fileMenu.add(closeitem); editManu.add(repealitem);
editManu.addSeparator();
editManu.add(cutitem);
editManu.add(copyitem);
editManu.add(stickitem);
editManu.add(deleteitem);
editManu.addSeparator();
editManu.add(finditem);
editManu.add(findnextitem);
editManu.add(replaceitem);
editManu.add(turnitem);
editManu.addSeparator();
editManu.add(allitem);
editManu.add(timedateitem); repealitem.setEnabled(false);
cutitem.setEnabled(false);
copyitem.setEnabled(false);
deleteitem.setEnabled(false); formatMenu.add(linewrapitem);
formatMenu.add(fontitem); checkMenu.add(stateitem); helpMenu.add(checkhelpitem);
helpMenu.add(aboutitem); prepealitem=new JMenuItem("撤销(U)");
pcutitem=new JMenuItem("剪切(T)");
pcopyitem=new JMenuItem("复制(C)");
pstickitem=new JMenuItem("粘帖(P)");
pdeleteitem=new JMenuItem("删除(D)");
pallitem=new JMenuItem("全选(A)");
ptimedateitem=new JMenuItem("时间/日期(D)"); prepealitem.setEnabled(false); pMenu.add(prepealitem);
pMenu.addSeparator();
pMenu.add(pcutitem);
pMenu.add(pcopyitem);
pMenu.add(pstickitem);
pMenu.add(pdeleteitem);
pMenu.add(pallitem);
pMenu.add(ptimedateitem); //设置快捷键和提示信息
newitem.setMnemonic(KeyEvent.VK_N);
newitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
openitem.setMnemonic(KeyEvent.VK_O);
openitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
saveitem.setMnemonic(KeyEvent.VK_S);
saveitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));
saveanotheritem.setMnemonic(KeyEvent.VK_A);
saveanotheritem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
closeitem.setMnemonic(KeyEvent.VK_X);
closeitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));
pageitem.setMnemonic(KeyEvent.VK_U);
pointitem.setMnemonic(KeyEvent.VK_P);
pointitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_DOWN_MASK)); repealitem.setMnemonic(KeyEvent.VK_Z);
repealitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK));
cutitem.setMnemonic(KeyEvent.VK_T);
cutitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_DOWN_MASK));
copyitem.setMnemonic(KeyEvent.VK_C);
copyitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
stickitem.setMnemonic(KeyEvent.VK_V);
stickitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK));
deleteitem.setMnemonic(KeyEvent.VK_L);
deleteitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_DOWN_MASK));
allitem.setMnemonic(KeyEvent.VK_A);
allitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
timedateitem.setMnemonic(KeyEvent.VK_D);
timedateitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_DOWN_MASK));
finditem.setMnemonic(KeyEvent.VK_F);
finditem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_DOWN_MASK));
findnextitem.setMnemonic(KeyEvent.VK_L);
findnextitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_DOWN_MASK));
replaceitem.setMnemonic(KeyEvent.VK_H);
replaceitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_DOWN_MASK));
turnitem.setMnemonic(KeyEvent.VK_G);
turnitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_DOWN_MASK)); prepealitem.setMnemonic(KeyEvent.VK_Z);
prepealitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK));
pcutitem.setMnemonic(KeyEvent.VK_T);
pcutitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_DOWN_MASK));
pcopyitem.setMnemonic(KeyEvent.VK_C);
pcopyitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
pstickitem.setMnemonic(KeyEvent.VK_V);
pstickitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK));
pdeleteitem.setMnemonic(KeyEvent.VK_L);
pdeleteitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_DOWN_MASK));
pallitem.setMnemonic(KeyEvent.VK_A);
pallitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
ptimedateitem.setMnemonic(KeyEvent.VK_D);
ptimedateitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_DOWN_MASK)); linewrapitem.setMnemonic(KeyEvent.VK_W);
fontitem.setMnemonic(KeyEvent.VK_F);
stateitem.setMnemonic(KeyEvent.VK_S); checkhelpitem.setMnemonic(KeyEvent.VK_H);
aboutitem.setMnemonic(KeyEvent.VK_A); //添加事件监听器
newitem.addActionListener(this);
openitem.addActionListener(this);
saveitem.addActionListener(this);
saveanotheritem.addActionListener(this);
closeitem.addActionListener(this);
pageitem.addActionListener(this);
pointitem.addActionListener(this); repealitem.addActionListener(this);
cutitem.addActionListener(this);
copyitem.addActionListener(this);
stickitem.addActionListener(this);
deleteitem.addActionListener(this);
allitem.addActionListener(this);
timedateitem.addActionListener(this);
finditem.addActionListener(this);
findnextitem.addActionListener(this);
replaceitem.addActionListener(this);
turnitem.addActionListener(this); linewrapitem.addActionListener(this);
fontitem.addActionListener(this); stateitem.addActionListener(this); checkhelpitem.addActionListener(this);
aboutitem.addActionListener(this); area.addMouseListener(new MouseAdapter()
{ public void mousePressed(MouseEvent e){
if(e.isPopupTrigger())//返回此鼠标事件是否为该平台的弹出菜单触发事件
{ pMenu.show(e.getComponent(),e.getX(),e.getY());//在组件调用者的坐标空间中的位置 X、Y 显示弹出菜单
}
checkMenuItemEnabled();//设置剪切,复制,粘帖,删除等功能的可用性
area.requestFocus();//编辑区获取焦点
}
public void mouseReleased(MouseEvent e)
{ if(e.isPopupTrigger())//返回此鼠标事件是否为该平台的弹出菜单触发事件
{ pMenu.show(e.getComponent(),e.getX(),e.getY());//在组件调用者的坐标空间中的位置 X、Y 显示弹出菜单
}
checkMenuItemEnabled();//设置剪切,复制,粘帖,删除等功能的可用性
area.requestFocus();//编辑区获取焦点
}
}); prepealitem.addActionListener(this);
pcutitem.addActionListener(this);
pcopyitem.addActionListener(this);
pstickitem.addActionListener(this);
pdeleteitem.addActionListener(this);
pallitem.addActionListener(this);
ptimedateitem.addActionListener(this); //编辑区注册事件监听(与撤销操作有关)
area.getDocument().addUndoableEditListener(undoHandler);
area.getDocument().addDocumentListener(this); //添加主菜单项
bar.add(fileMenu);
bar.add(editManu);
bar.add(formatMenu);
bar.add(checkMenu);
bar.add(helpMenu); //添加面板及显示
frame.add(scpane);
frame.setJMenuBar(bar);
frame.setSize(800, 550);
frame.setLocation(400, 200); frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent arg0) {
System.exit(1);
}
}); } @Override
public void actionPerformed(ActionEvent e) {
Object obj=e.getSource();
if(obj instanceof JMenuItem) {
JMenuItem item=(JMenuItem)obj;
if(item==newitem) {
new TextPad(); }else if(item==openitem) {
chooser=new JFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
try {
FileInputStream fis=new FileInputStream(file);
byte[] b;
try {
b = new byte[fis.available()];
fis.read(b);
area.append(new String(b));
fis.close();
} catch (IOException e1) { e1.printStackTrace();
} } catch (FileNotFoundException e1) { e1.printStackTrace();
}
}else if(item==saveanotheritem) {
chooser=new JFileChooser();
chooser.showSaveDialog(null);
file=chooser.getSelectedFile();
try {
if(!file.exists()) {
file.createNewFile();
}
FileOutputStream fos=new FileOutputStream(file);
byte[] b=area.getText().getBytes();
fos.write(b);
fos.close();
} catch (IOException e1) { e1.printStackTrace();
}
}else if(item==saveitem) {
file=chooser.getSelectedFile();
try {
FileOutputStream fos=new FileOutputStream(file);
byte[] b=area.getText().getBytes();
fos.write(b); fos.close();
} catch (FileNotFoundException e1) { e1.printStackTrace();
} catch (IOException e1) { e1.printStackTrace();
} }else if(item==closeitem) {
//System.exit(1);
int exitChoose=JOptionPane.showConfirmDialog(this,"确定要退出吗?","退出提示",JOptionPane.OK_CANCEL_OPTION);
if(exitChoose==JOptionPane.OK_OPTION){
System.exit(0);
}else{
return;
}
}else if(item==cutitem||item==pcutitem) {
area.cut(); }else if(item==copyitem||item==pcopyitem) {
area.copy(); }else if(item==stickitem||item==pstickitem) {
area.paste(); }else if(item==allitem||item==pallitem) {
area.selectAll(); }else if(item==deleteitem||item==pdeleteitem) { String temp = area.getSelectedText();//获得鼠标拖动选取的文本
int start = area.getSelectionStart();
int end = area.getSelectionEnd();
area.replaceRange("",start,end);//选中的区域用""替换 }else if(item==repealitem||item==prepealitem) {
if(e.getSource()==repealitem || e.getSource()==prepealitem){
area.requestFocus();
if(undo.canUndo()){
try{
undo.undo();
}catch (CannotUndoException ex){
System.out.println("Unable to undo:" + ex);
//ex.printStackTrace();
}
}
if(!undo.canUndo()){
repealitem.setEnabled(false);
prepealitem.setEnabled(false);
}
} }else if(item==timedateitem||item==ptimedateitem) {
Date d = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateNewStr=sdf.format(d);
area.append(dateNewStr); }else if(item==pageitem) {
area.requestFocus();
JOptionPane.showMessageDialog(this,"对不起,此功能尚未实现!","提示",JOptionPane.WARNING_MESSAGE); }else if(item==pointitem) {
area.requestFocus();
JOptionPane.showMessageDialog(this,"对不起,此功能尚未实现!","提示",JOptionPane.WARNING_MESSAGE); }else if(item==finditem) { }else if(item==findnextitem) { }else if(item==replaceitem) { }else if(item==turnitem) { } else if(item==linewrapitem) { if(!i) {
area.setLineWrap(true);
// area.setWrapStyleWord(true); i=true;
}else {
area.setLineWrap(false);
// area.setWrapStyleWord(false); i=false;
} }else if(item==fontitem) {
area.requestFocus();
font();
}else if(item==stateitem) {
if(!i) {
statusLabel.setVisible(false);
i=true;
}else {
statusLabel.setVisible(true);
i=false;
} }else if(item==checkhelpitem) {
area.requestFocus();
JOptionPane.showMessageDialog(this,"请自行百度","帮助主题",JOptionPane.INFORMATION_MESSAGE); }else if(item==aboutitem) {
area.requestFocus();
JOptionPane.showMessageDialog(this,
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"+
" 编写者:张文龙 \n"+
" 编写时间:2019年11月 \n"+
" qq:908866340 \n"+
" 一些地方借鉴他人 \n"+
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n",
"记事本",JOptionPane.INFORMATION_MESSAGE);
}
} } private void checkMenuItemEnabled() {
String selectText=area.getSelectedText();
if(selectText==null){
cutitem.setEnabled(false);
pcutitem.setEnabled(false);
copyitem.setEnabled(false);
pcopyitem.setEnabled(false);
deleteitem.setEnabled(false);
pdeleteitem.setEnabled(false); }else{
cutitem.setEnabled(true);
pcutitem.setEnabled(true);
copyitem.setEnabled(true);
pcopyitem.setEnabled(true);
deleteitem.setEnabled(true);
pdeleteitem.setEnabled(true);
}
//粘帖功能可用性判断
Transferable contents=clipBoard.getContents(this);
if(contents==null){
stickitem.setEnabled(false);
pstickitem.setEnabled(false);
}else{
stickitem.setEnabled(true);
pstickitem.setEnabled(true);
} }
class UndoHandler implements UndoableEditListener{
public void undoableEditHappened(UndoableEditEvent uee){
undo.addEdit(uee.getEdit());
}
} public void font(){ final JDialog fontDialog=new JDialog(this,"字体设置",false);
Container con=fontDialog.getContentPane();
con.setLayout(new FlowLayout(FlowLayout.LEFT)); JLabel fontLabel=new JLabel("字体(F):");
fontLabel.setPreferredSize(new Dimension(100,20));//构造一个Dimension,并将其初始化为指定宽度和高度 JLabel styleLabel=new JLabel("字形(Y):");
styleLabel.setPreferredSize(new Dimension(100,20)); JLabel sizeLabel=new JLabel("大小(S):");
sizeLabel.setPreferredSize(new Dimension(100,20)); final JLabel sample=new JLabel("张文龙的记事本"); final JTextField fontText=new JTextField(9);
fontText.setPreferredSize(new Dimension(200,20)); final JTextField styleText=new JTextField(8);
styleText.setPreferredSize(new Dimension(200,20)); final int style[]={Font.PLAIN,Font.BOLD,Font.ITALIC,Font.BOLD+Font.ITALIC};
final JTextField sizeText=new JTextField(5);
sizeText.setPreferredSize(new Dimension(200,20)); JButton okButton=new JButton("确定");
JButton cancel=new JButton("取消"); cancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
fontDialog.dispose();
}
}); Font currentFont=area.getFont();
fontText.setText(currentFont.getFontName());
fontText.selectAll(); if(currentFont.getStyle()==Font.PLAIN){
styleText.setText("常规");
}
else if(currentFont.getStyle()==Font.BOLD){
styleText.setText("粗体");
}
else if(currentFont.getStyle()==Font.ITALIC){
styleText.setText("斜体");
}
else if(currentFont.getStyle()==(Font.BOLD+Font.ITALIC)){
styleText.setText("粗斜体");
} styleText.selectAll(); String str=String.valueOf(currentFont.getSize());
sizeText.setText(str);
sizeText.selectAll(); final JList fontList,styleList,sizeList;
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
final String fontName[]=ge.getAvailableFontFamilyNames(); fontList=new JList(fontName);
fontList.setFixedCellWidth(86);
fontList.setFixedCellHeight(20);
fontList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); final String fontStyle[]={"常规","粗体","斜体","粗斜体"}; styleList=new JList(fontStyle);
styleList.setFixedCellWidth(86);
styleList.setFixedCellHeight(20);
styleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
if(currentFont.getStyle()==Font.PLAIN){
styleList.setSelectedIndex(0);
} else if(currentFont.getStyle()==Font.BOLD){
styleList.setSelectedIndex(1);
} else if(currentFont.getStyle()==Font.ITALIC){
styleList.setSelectedIndex(2);
} else if(currentFont.getStyle()==(Font.BOLD+Font.ITALIC)){
styleList.setSelectedIndex(3);
} final String fontSize[]={"8","9","10","11","12","14","16","18","20","22","24","26","28","36","48","72"};
sizeList=new JList(fontSize);
sizeList.setFixedCellWidth(43);
sizeList.setFixedCellHeight(20);
sizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fontList.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent event){
fontText.setText(fontName[fontList.getSelectedIndex()]);
fontText.selectAll();
Font sampleFont1=new Font(fontText.getText(),style[styleList.getSelectedIndex()],Integer.parseInt(sizeText.getText()));
sample.setFont(sampleFont1);
}
});
styleList.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent event){
int s=style[styleList.getSelectedIndex()];
styleText.setText(fontStyle[s]);
styleText.selectAll();
Font sampleFont2=new Font(fontText.getText(),style[styleList.getSelectedIndex()],Integer.parseInt(sizeText.getText()));
sample.setFont(sampleFont2);
}
});
sizeList.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent event){
sizeText.setText(fontSize[sizeList.getSelectedIndex()]);
//sizeText.requestFocus();
sizeText.selectAll();
Font sampleFont3=new Font(fontText.getText(),style[styleList.getSelectedIndex()],Integer.parseInt(sizeText.getText()));
sample.setFont(sampleFont3);
}
});
okButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Font okFont=new Font(fontText.getText(),style[styleList.getSelectedIndex()],Integer.parseInt(sizeText.getText()));
area.setFont(okFont);
fontDialog.dispose();
}
}); JPanel samplePanel=new JPanel();
samplePanel.setBorder(BorderFactory.createTitledBorder("示例")); samplePanel.add(sample);
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
JPanel panel3=new JPanel();
panel2.add(fontText);
panel2.add(styleText);
panel2.add(sizeText);
panel2.add(okButton);
panel3.add(new JScrollPane(fontList));//JList不支持直接滚动,所以要让JList作为JScrollPane的视口视图
panel3.add(new JScrollPane(styleList));
panel3.add(new JScrollPane(sizeList));
panel3.add(cancel);
con.add(panel1);
con.add(panel2);
con.add(panel3);
con.add(samplePanel);
fontDialog.setSize(350,340);
fontDialog.setLocation(200,200);
fontDialog.setResizable(false);
fontDialog.setVisible(true);
}
public void insertUpdate(DocumentEvent e) {
repealitem.setEnabled(true);
prepealitem.setEnabled(true);
} public void removeUpdate(DocumentEvent e) {
repealitem.setEnabled(true);
prepealitem.setEnabled(true);
} public void changedUpdate(DocumentEvent e) {
repealitem.setEnabled(true);
prepealitem.setEnabled(true);
}
}

运行截图

第十四周课程总结&实验报告(简单记事本的实现)的更多相关文章

  1. 第十四周课程总结&实验报告

    简单记事本的实现 实验源码 主类 package test1; import javax.swing.JFrame; import javax.swing.JTextArea; public clas ...

  2. 第十四周课程总结 & 实验报告

    一.JDBC JDBC概述 JDBC提供了一种与平台无关的用于执行SQL语句的标准JavaAPI,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成 JDBC的主要操作 ...

  3. 第四周课程总结&实验报告(二)

    Java实验报告(二) 实验二 Java简单类与对象 一. 实验目的 (1) 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造 ...

  4. 第四周课程总结&实验报告二

    第四周课程总结 第四周课程总结 本周重点为学习String;首先String用以创建字符串,且通过有一次课堂练习加强理解到:String 类是不可改变的,一旦创建了 String 对象,那它的值就无法 ...

  5. 第四周课程总结&实验报告

    实验报告 1.写一个名为Rectangle的类表示矩形. 其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求 ...

  6. 第十四周课程总结&&实验总结

    课程总结: 1.Java实现跨平台操作的工具:JDBC. 它的意思是java数据库连接,可以方便的实现多种关系型数据库的统一操作,它由一组用java语句编写的类和接口组成. 2.JDBC驱动分类: J ...

  7. 第三周课程总结&实验报告

    课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...

  8. Java第三周课程总结&实验报告一

    第三周课程总结 1.关于面向对象的一些具体内容,明白了类与对象以及Java的封装性和构造方法以及对对象匿名的相关知识. 2.this关键字,它是表示类的成员属性(变量),使用this构造方法时必须放在 ...

  9. 第六周课程总结&实验报告(四)

    实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...

随机推荐

  1. MUI 支付案例(支付宝/微信)

    首先说明一下,本文借鉴了多位博主的文章,所以会看到很多一样的代码. 写这篇博客主要目的是为了便于后期查看(不好之处,敬请留言吐槽),案例经本人测试,是可以使用的. 先上效果图 前端HTML代码: &l ...

  2. easyUi的组合表格

    公司之前的项目是用easyui写的里面还混搭着php...把分支下来,有点蒙.晚上回来恶补一下吧,今天渲染这个表格,我开始自己写假数据,然后用ajax操作再使用 obj.datagrid('loadD ...

  3. 【Distributed】大型网站高并发和高可用

    一.DNS域名解析 二.大型网站系统应有的特点 三.网站架构演变过程 3.1 传统架构 3.2 分布式架构 3.3 SOA架构 3.4 微服务架构 四.高并发设计原则 4.1 拆分系统 4.2 服务化 ...

  4. kubernetes之node隔离与恢复

    需求: 在硬件升级, 硬件维护等情况下, 我们需要将某些node隔离, kubectl cordon <node_name> #禁止pod调度到该节点上, 在其上运行的pod并不会自动停止 ...

  5. linux入门常用指令2.安装nginx

    下载nginx包 nginx-1.10.3.tar.gz 解压 [root@localhost src]# tar -zxvf nginx-1.10.3.tar.gz [root@localhost ...

  6. IIS教程:因权限问题被拒绝访问的解决方案

    https://blog.csdn.net/a497785609/article/details/49952281 写了一个类IISAdmin,负责建立.设置.删除虚拟目录,发现在web中调用,遇到权 ...

  7. Educational Codeforces Round 37 (Rated for Div. 2)C. Swap Adjacent Elements (思维,前缀和)

    Educational Codeforces Round 37 (Rated for Div. 2)C. Swap Adjacent Elements time limit per test 1 se ...

  8. TypeHandler简介及配置(mybatis源码篇)

    作者:南柯梦 Mybatis中的TypeHandler是什么? 无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器 ...

  9. Java8-Stream-No.06

    import java.io.IOException; import java.math.BigDecimal; import java.util.Arrays; import java.util.s ...

  10. kafka什么时候会丢消息(转)

    因为在具体开发中某些环节考虑使用kafka却担心有消息丢失的风险,本周结合项目对kafka的消息可靠性做了一下调研和总结: 首先明确一下丢消息的定义.kafka集群中的部分或全部broker挂了,导致 ...