📄 classnews.java
字号:
package cn.com.studentsystem.classnews;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import cn.com.studentsystem.excel.NewsExcelFrame;
import cn.com.studentsystem.excel.NewsPutOutExcel;
import cn.com.studentsystem.exception.NoRowSelectedException;
import cn.com.studentsystem.log.Log;
import cn.com.util.DBConnection;
import cn.com.util.studentsystemcommon.JDatePicker;
public class ClassNews extends JPanel{
public static JTable jt1;
public static DefaultTableModel dtm;
public static int selected_row ;
JOptionPane jop = new JOptionPane();
public ClassNews(){
init();
}
public void init(){
/**
*以下是将该动作写入日志文件/////////////////////////////////////////
*/
File file = new File("logdiary.txt");
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileWriter(file,true),true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.log("ClassNews", pw, "进入了班级消息栏的主界面");
this.setSize(740, 500);
this.setLayout(new BorderLayout());
// JCalendarPanel j = new JCalendarPanel();//创建一个时间表
// j.setSize(50,500);
GridLayout grid = new GridLayout(4,1,10,10);
Font f = new Font("",Font.HANGING_BASELINE,40);
Font f1 = new Font("",Font.TYPE1_FONT,20);
Color c = new Color(240,179,22);
ClassInfoJPanel news_panel = new ClassInfoJPanel();
JPanel left_panel = new JPanel();
left_panel.setLayout(grid);
// JSplitPane split_panel = new JSplitPane();
// split_panel.setAutoscrolls(true);
JPanel button_panel = new JPanel();
news_panel.setLayout(new BorderLayout());
JLabel jl = new JLabel("中信29班消息栏",JLabel.CENTER);
jl.setFont(f);
jl.setForeground(Color.BLACK);
// ImageIcon i1 = new ImageIcon("image//tr.png");
// ImageIcon i2 = new ImageIcon("image//sr.png");
// ImageIcon i3 = new ImageIcon("image//cr.png");
// ImageIcon i4 = new ImageIcon("image//gr.png");
// ImageIcon i5 = new ImageIcon("image//trr.png");
// ImageIcon i6 = new ImageIcon("image//srr.png");
// ImageIcon i7 = new ImageIcon("image//crr.png");
// ImageIcon i8 = new ImageIcon("image//grr.png");
//
JButton jb1 = new JButton("添加消息");
JButton jb2 = new JButton("删除消息");
JButton jb3 = new JButton("查询消息");
JButton jb4 = new JButton("修改消息");
// jb1.setRolloverEnabled(true);
// jb2.setRolloverEnabled(true);
// jb3.setRolloverEnabled(true);
// jb4.setRolloverEnabled(true);
//
// jb1.setRolloverIcon(i5);
// jb2.setRolloverIcon(i6);
// jb3.setRolloverIcon(i7);
// jb4.setRolloverIcon(i8);
// jb1.setHorizontalTextPosition(JButton.CENTER);
// jb2.setHorizontalTextPosition(JButton.CENTER);
// jb3.setHorizontalTextPosition(JButton.CENTER);
// jb4.setHorizontalTextPosition(JButton.CENTER);
//
// jb1.setVerticalTextPosition(JButton.CENTER);
// jb2.setVerticalTextPosition(JButton.CENTER);
// jb3.setVerticalTextPosition(JButton.CENTER);
// jb4.setVerticalTextPosition(JButton.CENTER);
// jb1.setFont(f1);
// jb2.setFont(f1);
// jb3.setFont(f1);
// jb4.setFont(f1);
button_panel.add(jb1);
button_panel.add(jb2);
button_panel.add(jb3);
button_panel.add(jb4);
button_panel.setBorder(BorderFactory.createTitledBorder("操作按钮"));
Object[] column_name = {"时间日期","消息标题","消息发布者"};
Object[][] row_name = {};
JScrollPane jsp = new JScrollPane();
dtm = new DefaultTableModel(row_name,column_name);
jt1 = new JTable(dtm);
jt1.setRowHeight(20);
TableColumnModel columnModel = jt1.getColumnModel();
JDatePicker date_box = new JDatePicker();
jt1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(date_box));
jt1.setShowVerticalLines(true);
jsp.setViewportView(jt1);
JButton excel = new JButton("导出Excel表");
news_panel.add(jsp);
news_panel.add(jl,"North");
button_panel.add(excel);
// split_panel.setLeftComponent(left_panel);
// split_panel.setRightComponent( news_panel);
this.add(news_panel,"Center");
this.add(button_panel,"South");
/**
* 以下是动作事件监听
* @author Administrator
*
*/
class NewsAction implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getActionCommand().equals("添加消息")){
File file = new File("logdiary.txt");
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileWriter(file,true),true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.log("ClassNews的添加按钮", pw, "点击进入了添加消息的界面");
AddTopic add = new AddTopic();
}else if(arg0.getActionCommand().equals("删除消息")){
File file = new File("logdiary.txt");
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileWriter(file,true),true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.log("ClassNews的删除按钮", pw, "选择是否对记录进行删除");
int row = -1;
row = jt1.getSelectedRow();
if(row == -1){
try {
throw new NoRowSelectedException("没有任何行选择进行操作");
} catch (NoRowSelectedException e) {
jop.showMessageDialog(null, "你没有选中任何行进行操作,请选择!");
}
}else{
int close = jop.showConfirmDialog(null, "是否删除此信息", "消息提示", JOptionPane.YES_NO_OPTION);
if(close == jop.YES_OPTION){
String title = dtm.getValueAt(row, 1).toString();
dtm.removeRow(row);
Connection con = DBConnection.getConnectionOracle();
try {
PreparedStatement ps = con.prepareStatement("delete from news where title = ?" );
ps.setString(1, title);
ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}else if(arg0.getActionCommand().equals("查询消息")){
File file = new File("logdiary.txt");
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileWriter(file,true),true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.log("ClassNews的查询消息按钮", pw, "点击进入查询消息的界面");
SelectTopic select = new SelectTopic();
}else if(arg0.getActionCommand().equals("修改消息")){
File file = new File("logdiary.txt");
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileWriter(file,true),true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.log("ClassNews的修改按钮", pw, "点击进入了修改消息的界面");
int row = -1;
row = jt1.getSelectedRow();
if(row == -1){
try {
throw new NoRowSelectedException("没有任何行选择进行操作");
} catch (NoRowSelectedException e) {
jop.showMessageDialog(null, "你没有选中任何行进行操作,请选择!");
}
}
else{
UpdateTopic update = new UpdateTopic();
update.jf.setVisible(true);
UpdateTopic.author_text.setText(dtm.getValueAt(row, 2).toString()) ;
UpdateTopic.title_text.setText(dtm.getValueAt(row, 1).toString()) ;
UpdateTopic.date_text.setSelectedItem(dtm.getValueAt(row, 0).toString().substring(0, 10));
Connection con = DBConnection.getConnectionOracle();
try {
PreparedStatement ps = con.prepareStatement("select topic from news where title = ?");
ps.setString(1, dtm.getValueAt(row, 1).toString());
ResultSet rs = ps.executeQuery();
while(rs.next()){
UpdateTopic.topic_area.setText(rs.getString(1));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else if(arg0.getActionCommand().equals("导出Excel表")){
NewsExcelFrame excel = new NewsExcelFrame();
// String filename = "f:\\news.xls";
// int row_count = jt1.getRowCount();
// Vector vector = new Vector();
// for(int i=0;i<row_count;i++){
// vector.add(dtm.getValueAt(i, 0));
// vector.add(dtm.getValueAt(i, 1));
// vector.add(dtm.getValueAt(i, 2));
// }
//// System.out.println(vector.get(3));
// WritableWorkbook workbook = NewsPutOutExcel.buildWorkBook(filename);
// WritableSheet sheet = NewsPutOutExcel.setExcel(workbook, row_count,vector);
//
//// try {
////// workbook.write();
////// workbook.close();
//// } catch (WriteException e) {
//// // TODO Auto-generated catch block
//// e.printStackTrace();
//// }
//// catch (IOException e) {
//// // TODO Auto-generated catch block
//// e.printStackTrace();
//// }
// jop.showMessageDialog(null, "消息表已导出,存放在"+filename);
}
}
}
NewsAction news_action = new NewsAction();
jb1.addActionListener(news_action);
jb2.addActionListener(news_action);
jb3.addActionListener(news_action);
jb4.addActionListener(news_action);
excel.addActionListener(news_action);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -