让窗口上的图标、标签文字等随窗口大小改变
Java swing里有办法没?
Java swing里有办法没?
解决方案 »
- 静态
- 求教,如何利用java的文本控件实现类似于信纸的文本输入背景?
- 用jxl操作excel设置 excel密码
- 闲来无事,写了一个文本编辑器,欢迎交流!
- 使用jade 的问题,如果jsp中嵌入applet,applet的class也被混淆处理了,jsp中如何调用
- 关于applet绘制树形结构问题
- 如何做好软件需求分析?请推荐几本书?
- 如何暂停一个带有内部循环的线程的问题?在线等待
- 那里有JDK编译器?
- 我的Applet中Mouse事件好像没有触发?为什么
- volatile 关键字 除了修饰基本类型外 ,可以修饰InputStream之类的吗
- 有一个Area类的图型,怎样实现他能随着鼠标拖动移动?
import java.awt.*;public class ResizeLabel extends JLabel {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(400, 60);
JLabel label = new ResizeLabel();
label.setText("label");
label.setOpaque(true);
label.setIcon(new ImageIcon("web.gif"));
frame.add(label);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void paintComponent(Graphics g) {
// super.paintComponent(g);
int height = getHeight();
Font oldFont = getFont();
setFont(new Font(oldFont.getName(), oldFont.getStyle(), height));
Icon icon = getIcon();
String text = getText();
if (icon != null && icon instanceof ImageIcon) {
double scale = (double)icon.getIconWidth() / icon.getIconHeight();
int width = (int)(height * scale);
ImageIcon image = (ImageIcon)icon;
g.drawImage(image.getImage(), 0, 0, width, height, null);
g.drawString(text, width, (int)(height * 0.85));
} else {
g.drawString(text, 0, (int)(height * 0.85));
}
}
}写了个小例子,大致可以用,有瑕疵,调了半天没调出来,楼主可以继承JComponent,自己画就不会有任何干扰了。
下面ZUI Projects有三个Java相关的,可以去看看。