[Hỏi] Tạo ảnh nền trong jForm

bombon18

New Member
8/9/12
9
5
3
31
Tình hình là em đang viết một ứng dụng nhỏ bằng jForm trên NetBean :">. Em muốn thêm ảnh nền vào Form để giao diện không đơn điệu và trở nên đẹp hơn:P. Nhưng trong cái properties của jFrame nó không cho set IconImage như các Component khác:-L. Em cũng đã thêm jPanel và dùng Customize Code nhưng cũng chẳng tạo được ảnh nền@-)


Bác nào biết cách làm thì chỉ em với. ~X(
Em cảm ơn trước!!![-O<
 

nasural

Active Member
11/2/11
379
87
28
Đoạn new Image("sao1.jpg") của bạn, kiểm tra lại xem, trừ phi cái ảnh ở cùng package với cái class, bằng không để vậy là sai địa chỉ.
 

bombon18

New Member
8/9/12
9
5
3
31
bạn thử thêm đoạn code này ngay dòng đầu tiên trong phương thức paint xem sao:
Graphics2D g2 = (Graphicc2D) g;
rồi dùng g2 để draw image.
or tham khảo ở đây:
http://stackoverflow.com/questions/1064977/setting-background-images-in-jframe
http://stackoverflow.com/questions/1466240/how-to-set-an-image-as-a-background-for-frame-in-swing-gui-of-java
Vẫn không được bạn à :(
Đoạn new Image("sao1.jpg") của bạn, kiểm tra lại xem, trừ phi cái ảnh ở cùng package với cái class, bằng không để vậy là sai địa chỉ.
Mình kiểm tra rồi, nó vẫn trong cùng package với class. Nhưng hình vẫn không hiển thị @-)
 

nasural

Active Member
11/2/11
379
87
28
được rồi, bây giờ bạn làm thử 2 cách sau:
1. để địa chỉ tuyệt đối, đừng để tương đối
2. đổi đuôi ảnh thành png đừng để jpg thử xem.
 
  • Like
Reactions: bombon18

hello_java

New Member
9/9/12
24
1
3
25
Hung yen
mình kiếm được cái này trên congdong
Code chính:

JEditorPane je = new JEditorPane();
je.setContentType("text/html"); // content type, định dạng hiện thị văn bản là dạng text/html
je.setText("<center>Chào mừng bạn đến với <b>Cộng Đồng Java Việt Nam</b><br><img width='400' height='150' src='http://congdongjava.com/banner.jpg' />");
Code mẫu:
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JEditorPane;
import javax.swing.JFrame;

/**
*
* @author Thanh Nhan <JackV at congdongjava.com>
*/
public class JEditorPane_01 {
public static void main(String[] args) {
JFrame jf = new JFrame("Congdongjava.com demo JEditorPane");
JEditorPane je = new JEditorPane();
Container con = jf.getContentPane();
con.setLayout(new BorderLayout());
con.add(je);

je.setContentType("text/html"); // content type, định dạng hiện thị văn bản là dạng text/html
je.setText("<center>Chào mừng bạn đến với <b>Cộng Đồng Java Việt Nam</b><br><img width='400' height='150' src='http://congdongjava.com/banner.jpg' />");

jf.setSize(420, 250);
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
jf.setVisible(true);
}

}
 
  • Like
Reactions: bombon18

KiraArus

Member
28/9/11
144
23
18
HCM
được rồi, bây giờ bạn làm thử 2 cách sau:
1. để địa chỉ tuyệt đối, đừng để tương đối
2. đổi đuôi ảnh thành png đừng để jpg thử xem.
hôm bữa mình cũng bị lỗi này.đổi lại đuôi png thì hiển thị được.
 
  • Like
Reactions: bombon18

nasural

Active Member
11/2/11
379
87
28
lý do rất đơn giản, vì như đã thấy, ở trên là sử dụng đối tượng ImageIcon để tạo ảnh nền, mà cái thằng này thì chỉ chịu file ảnh đuôi png, ko chịu jpg, nếu là đối tượng Image thì khác chấp nhận ảnh đuôi jpg, của mình là sài Image nên sài được jpg
 

nong_dan

Active Member
21/4/11
323
95
28
đơn giản nhất là bạn biến toàn bộ nền thành một JLabe sau đó thì add background vào..
PHP:
JLabel bg = new JLabel();
bg.setIcon(new ImageIcon(getClass().getResource("background.jpg")));
fram.add(bg);
//chú ý: nơi để ảnh xem có phù hợp ko, đôi khi nó ko load bởi vì ko đúng path
// fram phải setLayout phù hợp-> tốt nhất để độ rộng của ảnh bằng vs độ rộng của Fram...