⑴ 求哪位老板 赐教 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();
}
}