⑴ 求哪位老闆 賜教 java中 JLabel中放圖片和文字 如何讓文字顯示在圖片正下方居中位置
void
setHorizontalAlignment(int alignment)
設置標簽內容沿 X 軸的對齊方式。
void
setHorizontalTextPosition(int textPosition)
設置標簽的文本相對其圖像的水平位置。
這兩個方法。
label.setVerticalTextPosition(JLabel.BOTTOM);
label.setHorizontalTextPosition(JLabel.CENTER);
⑵ java中怎麼在JLabel中添加圖片
java API中 JLabel有個setIcon方法 可以把一張圖片設置為JLabel的圖標
setIcon
public void setIcon(Icon icon)定義此組件將要顯示的圖標。如果 icon 值為 null,則什麼也不顯示。
此屬性的默認值為 null。
這是一個 JavaBeans 綁定屬性。
另請參見:
setVerticalTextPosition(int), setHorizontalTextPosition(int), getIcon()
如果不寫文字的話就是單獨顯示一個圖標 如果添加文字的話 可以設置Icon顯示的位置
比如label.setIcon(new ImageIcon("圖片位置"))
如果是想把圖片作為背景 就需要重寫JLabel的paintComponents方法了
看樓主需要哪種
⑶ 如何在java的背景圖片上添加文字
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
public class DrawString extends Frame{
private static final int spacing = 20 ; //文字與圖片邊界的空白
private static final int wordNum = 7; //文字字型大小
private Color strColor;
private StringBuffer message;
private int pictureWidth;
private int pictureHight;
public void paint(Graphics g){
Color c = g.getColor();
g.setColor(strColor);
StringBuffer msg = message;
int strNumPerLine = (pictureWidth - spacing) / wordNum;
int strLineNum = message.length() / strNumPerLine;
for(int l=strLineNum,n=0 ;l<0; l--){
msg.substring(n, strNumPerLine);
g.drawString(msg.toString(), wordNum, wordNum * strNumPerLine);
n = strNumPerLine;
}
g.setColor(c);
//this.draw(g);
}
public DrawString(Color strColor, StringBuffer message, int pictureWidth, int pictureHight) {
this.strColor = strColor;
this.message = message;
this.pictureWidth = pictureWidth;
this.pictureHight = pictureHight;
}
}
⑷ java界面的背景圖片怎麼加,如果把圖片加在JLabel上填滿面板那怎麼樣才能再加button
不知道你怎麼加的。加背景圖有很多種辦法:
- 加一個 JLabel,然後在 JLabel 上添加圖片;
- 直接重寫 paint 方法,然後用 drawImage(Image src, int x, int y, int width, int height) 方法畫上去。
最大化的時候實際上是觸發了窗口事件,添加窗口監聽器,然後重寫 windowResized() 方法,一旦窗口改變大小就重新計算尺寸,並調用 repaint 方法重繪。
================================= 給你一個例子 =================================
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.event.WindowEvent;
class BackgroundPanel extends JPanel {
private Toolkit tk = Toolkit.getDefaultToolkit();
private Image backgroundImage;
private JButton btnExit = new JButton("Exit");
public BackgroundPanel (String imgFile) {
backgroundImage = tk.createImage(imgFile);
setLayout(null);
btnExit.setBounds(10, 10, 100, 25);
add(btnExit);
}
@Override public void paint (Graphics g) {
g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this);
paintComponents(g);
}
}
class DemoFrame extends JFrame {
public DemoFrame () {
super("Demo");
String fileName = null;
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("請選擇一張背景圖片");
fileChooser.setFileFilter(new FileNameExtensionFilter("圖片文件(*.bmp, *.gif, *.jpg, *.jpeg, *.png)", "bmp", "gif", "jpg", "jpeg", "png"));
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
fileName = fileChooser.getSelectedFile().getAbsolutePath();
if (fileName == null)
return;
} else
return;
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(800, 600);
setLocationRelativeTo(null);
setContentPane(new BackgroundPanel(fileName));
setVisible(true);
}
}
public class Demo {
public static void main (String args[]) {
new DemoFrame();
}
}