Convert .NET (Based on .NET 4.5) Convert .NET phát triển một công cụ tích hợp, mạnh mẽ, đa mục đích chuyển đổi. Các tính năng: C # sang VB và ngược lại, LINQ tester, mã hóa / giải mã, Regular Expression tester, Base64 Encoding / Decoding và dịch văn bản đầy đủ.
Đôi điều về tôi Birthday: September 20 Address: Vietnam Personal email: ntdan@live.com Gender: Male Location: Viet Nam Occupation: Can Tho More : Lecturer of Can Tho University Interests: Computer; Travel; sport Job title: Lecturer Sở thích: Trao đổi kiến thức với mọi người, cafe một mình (enjoy coffee –> just alone). Mục tiêu: Hoàn thiện bản thần và cải thiện môi trường sống. Triết lý sống: Cuộc sống thật công bằng.
Experiment
Aptech Faculty and Lecturer of Infomation Technilogy and MultiMedia – Can Tho University from 2009 until now
.Net Technics: c#, asp.net, asp.net MVC, winform app.
MDI application là loại giao diện ứng dụng rất phổ biến trên nền hệ điều hành window. Java hỗ trợ 02 đối tượng jDesktopPane và JInternalFrame cho phép lập trình viên tạo ra loại giao diện ứng dụng này đơn gian và nhanh chóng.
Trong bài này tôi hướng dẫn căn bản cho các bạn sinh viên (lập trình viên) từng bước tạo ứng dụng có kiểu giao diện này. 1. Tạo form chính (FrmMain) 2. Định nghĩa form con (Children form) 3. Chỉ đinh form cha-con. 4. Ràng buộc form con chỉ được mở 1 lần trong form cha.
Bước 1: Tạo ứng dụng Java destop với netbean. + File -> New Project -> chọn kiểu java application Bước 2: Tạo đối tượng form cha + File -> New File -> chọn Swing GUI Forms -> chọn JFrame Form phía bên phải + Thiết kế menu chính của chương trình: Kéo thả Menu Bar và jDesktopPane vào form chính như hình dưới
[caption id="attachment_1086" align="aligncenter" width="300"] Giao diện tạo form chính[/caption]
Bước 3: Xây dựng các form con, trong ví dụ này tôi tạo form Login + File -> New File chọn tiếp loại JInternalFrame
Các bạn thiết kế lại giao diện form con cho phù hợp
Bước 4: Gán form con và form cha + Chọn menu login trong form cha: Click chuột phải và chọn event => action performed [sourcecode language="java"] for (JInternalFrame frmChild : jDesktopPane1.getAllFrames()) { frmChild.dispose(); }
FrmLogin frmLogin = new FrmLogin(); frmLogin.setTitle("Login to system"); frmLogin.setLocation(this.getWidth()/2 - frmLogin.getWidth()/2,(this.getHeight()-20)/2 - frmLogin.getHeight()/2 - 20); jDesktopPane1.add(frmLogin); frmLogin.setVisible(true); [/sourcecode]
Dòng lệnh for đóng tất cả các form con đang mở. [sourcecode language="java"] jDesktopPane1.add(frmLogin); frmLogin.setVisible(true); [/sourcecode] Đoạn gán form login vào form main.
OK, bây giờ chạy form cha và chọn menu login ta sẽ có kết quả
[caption id="attachment_1087" align="aligncenter" width="300"] Form con[/caption]
Bước 5: Qui định form chỉ được mở 1 lần, nếu trước đó đã mở và hiện đang bị che khuất thì chỉ hiển thị form con lên trên (active). Trong ví dụ này tôi chọn form About để làm demo + Định nghĩa biên frmAbout có kiểu là FrmAbout + Trong sự kiện Action Performed của menu About ta cung cấp code như sau [sourcecode language="java"] private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(frmAbout == null || frmAbout.isClosed()) { frmAbout = new FrmAbout(); jDesktopPane1.add(frmAbout); frmAbout.setLocation(this.getWidth()/2 - frmAbout.getWidth()/2,(this.getHeight()-20)/2 - frmAbout.getHeight()/2 - 20); frmAbout.setVisible(true); } else { frmAbout.setLocation(this.getWidth()/2 - frmAbout.getWidth()/2,(this.getHeight()-20)/2 - frmAbout.getHeight()/2 - 20); frmAbout.setVisible(true); } } [/sourcecode]
Như vậy là chúng ta vừa sủ dụng jDesktopPane và jInternalFrame để xây dựng ứng dụng MDI rất đơn gian. Hi vọng nó sẽ cho các bạn một các nhìn ban đầu về các xây dựng MDI application trên java với sự hỗ trợ của netbean.
private void loadFont() {
GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
// get all font name 
String[] fontNames = gEnv.getAvailableFontFamilyNames();
// load to combobox
ComboBoxModel model = new DefaultComboBoxModel(fontNames);
jcbFont.setModel(model);
}
When user select font and size, we will setting font and size for textpane component
private void jcbFontActionPerformed(java.awt.event.ActionEvent evt) {
// Change font of text
jTextPane1.setFont(new Font(jcbFont.getSelectedItem().toString(),
Font.PLAIN, Integer.parseInt(jcbSelectSize.getSelectedItem().toString())));
}
private void jcbSelectSizeActionPerformed(java.awt.event.ActionEvent evt) {
// Select size of text
String getSize = jcbSelectSize.getSelectedItem().toString();
Font f = jTextPane1.getFont();
// setting new size
jTextPane1.setFont(new Font(f.getFontName(),
f.getStyle(), Integer.parseInt(getSize)));
}
JColorChooser API of Java swing help our get a color from system color dialog, using code below for ActionPerformed event of color button.
private void btnSelectColorActionPerformed(java.awt.event.ActionEvent evt) {
Color jColor = selectColor;
// open color dialog and select Color
if ((jColor = JColorChooser.showDialog(this, "Select color", jColor)) != null) {
selectColor = jColor;
// set text color
jTextPane1.setForeground(selectColor);
}
}
RTFEditorKit can help reading formatted text on JTextPane and write down file system with rich text format
When user click on Save button or save as menu
private void save() {
JFileChooser file = new JFileChooser();
TextFilter filter = new TextFilter();
file.setFileFilter(filter);
String fileName = "";
// show save file dialog
if (file.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
// get full path of selected file
fileName = file.getSelectedFile().getAbsolutePath();
// get meta of text
StyledDocument doc = (StyledDocument) jTextPane1.getDocument();
// convert to richtext format
RTFEditorKit kit = new RTFEditorKit();
BufferedOutputStream out;
try {
out = new BufferedOutputStream(new FileOutputStream(fileName));
// save content to file
kit.write(out, doc, doc.getStartPosition().getOffset(), doc.getLength());
out.flush();
out.close();
} catch (Exception e) {
System.out.println("Err:" + e.toString());
}
} else {
return;
}
}
Handing button Open file or menu Open file as
private void open() {
JFileChooser file = new JFileChooser();
TextFilter filter = new TextFilter();
file.setFileFilter(filter);
String fileName = "";
// show open file dialog
if (file.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
fileName = file.getSelectedFile().getAbsolutePath();
} else {
return;
}
// using richtext format
RTFEditorKit rtf = new RTFEditorKit();
try {
// load file into jTextPane
FileInputStream fi = new FileInputStream(fileName);
rtf.read(fi, jTextPane1.getDocument(), 0);
fi.close();
} catch (Exception e) {
System.out.println("err:" + e.toString());
}
}
This is just demo java beginner.
I hope that, it is useful for you.