Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Cách dùng JDom truy xuất XML (Eclipse)

Nếu bạn đang cần truy xuất XML trong java thì JDom là 1 giải pháp đơn giản nhất.
Download JDom
Sau khi down về bạn giải nén ra và copy file jdom.jar trong thư mục "build" của gói vừa giải nén.

Để sử dụng jdom trong project của mình bạn cần Add reference các thư viện vào project, cách add thì như add look and feel, nếu chưa biết bạn có thể xem chi tiết tại đây.

READ XML:

Nôi dung file XML:

Launch Demo:
Download source

//Dòng này khai báo đường dẫn file XML cần load, SwordDemoJDom chính là tên main class của bạn.
InputStream in = SwordDemoJDom.class.getResourceAsStream("data/nhactre.xml");

//Phần này new 1 cái SAXBuilder có trong JDom
SAXBuilder builder = new SAXBuilder();
Document doc;
try {
doc = builder.build(in);

//Lấy về Root element trong file XML, root trong ví dụ này là "Songlist"
Element e = doc.getRootElement();

//Lập danh sách tất cả các child có trong file XML, child là "Song"
List kids = e.getChildren();

for (int i = 0; i < kids.size(); i++)
{

//Lấy về toàn bộ thành phần trong tag "Song" theo thứ tự, 0 là đầu tiên.
Element data = (Element) kids.get(i);

//Lấy nội dung trong tag "songname" và "singer"
final String songname = data.getChildText("songname");
final String singer = data.getChildText("singer");
int len = i*20;
textField = new JTextField();
textField.setBounds(10, len, 472, 20);

//Gán 2 String vừa lấy vào textField
textField.setText(songname + "--" + singer);
frame.getContentPane().add(textField);
}
} catch (JDOMException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

Vế cách Write và xóa dữ liệu xuống XML thì vẫn tương tự như vậy, thay "getChildText" bằng "add" hay "remove", có thể xem tài liệu hướng dẫn của JDom tại đây.

Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Format text in JEditorPane or JTextPane (Part 1)

Các bạn chắc chắn đã từng dùng các chương trình cho phép định dạng văn bản như Microsoft Office, hay thành phần có sẵn trong window đó là Wordpad. Java cũng cho phép chúng ta tạo ra chương trình có tính năng tương tự như vậy với cách hết sức đơn giản bằng cách sử dụng các gói editor kit.

Ví dụ như muốn tạo 1 nút bấm định dạng chữ in đậm (Bold) ta có thể dùng StyledEditorKit.
Để tạo nút định dạng in đậm (Bold) có rất nhiều cách, ở đây minhw sẽ trình bày 2 cách đơn giản nhất.

Code:
import javax.swing.*;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledEditorKit;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;

//Tạo Toolbar
JToolBar toolBar;
toolBar = new JToolBar();

//Thêm 1 panel vào JToolBar
final JPanel panel = new JPanel();
panel.setLayout(null);
toolBar.add(panel);

//Tạo ScrollPane
scrollPane = new JScrollPane();

Tạo EditorPane và add vào JScrollPane
editorPane = new JEditorPane();
editorPane.setContentType("text/html");
scrollPane.setViewportView(editorPane);


//Tạo Action và insert image vào

URL boldimage = main.class.getResource("images/bold.gif");
Action setbold = new StyledEditorKit.BoldAction();
setbold.putValue(Action.SMALL_ICON, new ImageIcon(boldimage));


//Add vào Button (Ở đây tôi sẽ dùng JToogleButton)

final JToggleButton toggleButton = new JToggleButton(setbold);
toggleButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
editorPane.grabFocus();
}
});
toggleButton.setBounds(141, 0, 22, 22);
toggleButton.setText("");
panel.add(toggleButton);


Cách khác: chỉ việc tạo Button vào gán Action thẳng vào đó

final JToggleButton toggleButton = new JToggleButton();
toggleButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
new StyledEditorKit.BoldAction().actionPerformed(null);
editorPane.grabFocus();
}
});
toggleButton.setBounds(141, 0, 22, 22);
toggleButton.setText("");
panel.add(toggleButton);

Tương tự cho các Action sau:
StyledEditorKit.BoldAction();
StyledEditorKit.ItalicAction();
StyledEditorKit.UnderlineAction();

Nhớ add JToolBar và JScrollPane vào Container :D

Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Java title Border

Đoạn code này dùng để tạo ra 1 border (đường viền); xung quanh 1 hay nhiều component có trong container và 1 dòng text như các bạn thấy trong hình.


Code:
import javax.swing.*;
import javax.swing.border.Border;

Border etchedBdr = BorderFactory.createEtchedBorder();
Border titledBdr = BorderFactory.createTitledBorder(etchedBdr, "Your Title here");
Border emptyBdr = BorderFactory.createEmptyBorder(10,10,10,10);
Border compoundBdr=BorderFactory.createCompoundBorder(titledBdr, emptyBdr);



Setborder to container:
setBorder(compoundBdr);





Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Insert image to java application

Code:
URL image = main.class.getResource("your image url here");
// Image must be .jpg, gif, png.
// main.class.getResource --> "main is main function class in your application"

Add image to JLabel:
JLabel label = new JLabel(new ImageIcon(image);

Add image to JButton:
JButton label = new JButton(new ImageIcon(image);

The same for another component in Swing.


No comments yet