package?example;
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設、柳城網(wǎng)站維護、網(wǎng)站推廣。
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JFrame;
import?javax.swing.JMenu;
import?javax.swing.JMenuBar;
import?javax.swing.JMenuItem;
import?javax.swing.JOptionPane;
import?javax.swing.JPanel;
import?javax.swing.border.EmptyBorder;
public?class?demo?extends?JFrame{
private?JMenuBar?menu?=?new?JMenuBar();
private?JPanel?contentPane?=?new?JPanel();
public?demo()
{
setTitle("compiler");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setJMenuBar(menu);
//JMenu?correct?=?new?JMenu("正確用例");
//JMenu?wrong?=?new?JMenu("錯誤用例");
////JMenuItem?WP?=?wrong.add("語法錯誤");
//JMenuItem?WL?=?wrong.add("詞法錯誤");
JMenu?edit?=?new?JMenu("編輯");
JMenu?help??=?new?JMenu("幫助");
JMenu?document?=?new?JMenu("文件");
JMenuItem?copy?=?edit.add("復制");
JMenu?color?=?new?JMenu("顏色");
JMenuItem?p?=?color.add("前景色");
p.addActionListener(new?ActionListener()
{
@Override
public?void?actionPerformed(ActionEvent?e)?{
JOptionPane.showMessageDialog(null,
"該項目正在建設中",?"信息",
JOptionPane.INFORMATION_MESSAGE);
}
});
JMenuItem?b?=?color.add("背景色");
b.addActionListener(new?ActionListener()
{
@Override
public?void?actionPerformed(ActionEvent?e)?{
JOptionPane.showMessageDialog(null,
"該項目正在建設中",?"信息",
JOptionPane.INFORMATION_MESSAGE);
}
});
edit.add(color);
JMenuItem?select?=?edit.add("全選");
menu.add(document);
menu.add(edit);
menu.add(help);
setLocation(400,200);
setSize(300,?300);
contentPane.setBorder(new?EmptyBorder(5,?5,?5,?5));
setContentPane(contentPane);
}
public?static?void?main(String[]args)
{
demo?browser?=?new?demo();
browser.setVisible(true);
}
}
實現(xiàn)方法請具體參照《Eclipse swt/Jface核心編程》
第21章 文本處理.
21.1 文本處理概述... 409
21.2 項目實戰(zhàn):JavaScript編輯器... 409
21.2.1 主窗口預覽... 409
21.2.2 項目文件結構... 410
21.3 主窗口模塊... 411
21.3.1 代碼實現(xiàn)... 411
21.3.2 主窗口程序代碼分析... 414
21.3.3 啟動主窗口程序... 416
21.4 代碼著色... 417
21.4.1 源代碼配置類(SourceViewerConfiguration)... 417
21.4.2 基于規(guī)則的代碼掃描器類(RuleBasedScanner)... 419
21.4.3 設置代碼掃描規(guī)則... 420
21.4.4 提取類(Token)和文本屬性類(TextAttribute)... 423
21.5 內(nèi)容輔助... 423
21.5.1 配置編輯器的內(nèi)容助手... 424
21.5.2 內(nèi)容輔助類... 424
21.5.3 輔助建議類(CompletionProposal)... 426
21.6 文檔的撤銷與重復... 427
21.6.1 文檔管理器對象(DefaultUndoManager)... 427
21.6.2 撤銷操作的實現(xiàn)... 427
21.6.3 恢復操作的實現(xiàn)... 428
21.7 查找與替換窗口... 429
21.7.1 窗口的界面設計... 429
21.7.2 查找功能的實現(xiàn)... 433
21.7.3 替換功能的實現(xiàn)... 434
21.8 首選項的對話框... 434
21.8.1 首選項頁面的代碼實現(xiàn)... 435
21.8.2 打開首選項頁面的代碼... 436
21.9 文件的打開、保存與打印... 437
21.9.1 打開文件... 437
21.9.2 保存文件... 437
21.9.3 打印文件... 438
21.10 幫助對話框... 439
21.11 其他的一些工具類... 440
21.11.1 事件管理類... 440
21.11.2 資源管理類... 441
21.11.3 程序中使用的常量... 443
21.12 本章小結... 444
從代碼來看,這是一個簡單的示例程序,功能是在幾張表中插入一些測試或示例的數(shù)據(jù):
1. DatabaseManager這個類是JDBC數(shù)據(jù)庫管理類,功能是保存數(shù)據(jù)庫連接參數(shù),提供建立連接方法;
2. DataAction 提供執(zhí)行數(shù)據(jù)庫更新操作方法(exect)和數(shù)據(jù)庫關閉連接方法(close);
3. StartManager 就是在sourceTable 表和userType表分別插入1000和20條測試數(shù)據(jù),數(shù)據(jù)都是隨機和根據(jù)一定規(guī)則生成;
java項目實現(xiàn)流水號自動增長
項目中有一個規(guī)則編號字段,從1開始,編號長度為5位,那么第一條數(shù)據(jù)編號就是00001。
實現(xiàn)的基本思路就是項目啟動時,從數(shù)據(jù)庫獲取當前最大值,作為靜態(tài)變量存儲;
業(yè)務獲取新的編碼,考慮并發(fā)問題,獲取編碼方法(編碼自增部分)為synchronized同步方法,如果自增為原子操作,則無需同步;
編碼前置0,使用String.format("%05d", newNum);格式化獲取。
實現(xiàn)代碼如下:
private final static AtomicInteger atomic = new AtomicInteger(0);
public static String startFormat(String format) {
return String.format(format, atomic.incrementAndGet());
}
package?test;
import?java.awt.FlowLayout;
import?java.text.SimpleDateFormat;
import?java.util.Calendar;
import?java.util.Date;
import?java.util.GregorianCalendar;
import?javax.swing.JFrame;
import?javax.swing.JLabel;
public?class?FrameDemo?extends?JFrame?implements?Runnable?{
public?void?run()?{
try{
while(true){
Date?date=new?Date();
SimpleDateFormat?sdf=new?SimpleDateFormat("yyyy年MM月");
SimpleDateFormat?sdf1=new?SimpleDateFormat("dd");
SimpleDateFormat?sdf2=new?SimpleDateFormat("hh:mm:ss");
String?week=getWeekOfDate(date);
GregorianCalendar?ca?=?new?GregorianCalendar();??
String?apm="";
int?check=ca.get(GregorianCalendar.AM_PM);
if(check==0){
apm="上午";
}else?if(check==1){
apm="下午";
}
JLabel?jl?=?new?JLabel("html"
+?"div?align='center'"+sdf.format(date)+"/div"
+?"div?align='center'font?size=50"+sdf1.format(date)+"/font日/div"
+?"div?align='center'"+week+"/div"
+?"div?align='center'"+apm+sdf2.format(date)+"/div"
+?"/html");
add(jl);
setLayout(new?FlowLayout());
setSize(150,150);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
Thread.sleep(1000);
//jl.setText(null);
remove(jl);
}
}catch(Exception?e){}
}
public?static?String?getWeekOfDate(Date?dt)?{
String[]?weekDays?=?{"星期日",?"星期一",?"星期二",?"星期三",?"星期四",?"星期五",?"星期六"};
Calendar?cal?=?Calendar.getInstance();
cal.setTime(dt);
int?w?=?cal.get(Calendar.DAY_OF_WEEK)?-?1;
if?(w??0)
w?=?0;
return?weekDays[w];
}
public?static?void?main(String[]?args)?{
FrameDemo?mr?=?new?FrameDemo();
Thread?t1?=?new?Thread(mr);
t1.start();
}
}
您好,提問者:
1、重要信息進行加密操作。
2、地址欄盡量采用post提交方式。
3、如果涉及多線程的話,可以使用Synchronized鎖。
下面例子:
public?class?Main{
public?static?void?main(String[]?args){
new?Thread(new?Suo()).start();
new?Thread(new?Suo()).start();
//開啟兩個線程,加鎖之后數(shù)據(jù)就不會出錯
}
}
class?Suo?implements?Runnable{
private?static?int?num?=?100;
public?synchronized?void?run(){
while(true){
if(num==0)
break;
else
System.out.println(num--);
}
}
}