我正在尝试在OSX上创建一个带有Java的半透明窗口并添加一个JLabel.
这JLabel会每秒改变它的文字......

然而,该组件不能很好地重新粉刷.
我怎么解决这个问题?
如果可能的话,请粘贴修复源代码,这是我的:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;
import java.util.Timer;
import java.util.TimerTask;
public class Translucent {
public static void main( String [] args ) {
JFrame frame = new JFrame();
frame.setBackground( new Color( 0.0f,0.0f,0.0f,0.3f));
final JLabel label = new JLabel("Hola");
label.setFont( new Font( label.getFont().getFamily(), Font.PLAIN, 46 ) );
label.setForeground( Color.white );
frame.add( label );
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible( true );
Timer timer = new …Run Code Online (Sandbox Code Playgroud) 我正在使用Swing创建一个UI,我想在一个图像中显示一个图像JLabel.我使用的代码如下:
JLabel label = new JLabel(new ImageIcon(ImageIO.read(new File("img.jpg"))));
Run Code Online (Sandbox Code Playgroud)
如果我使用png图像,这可以正常工作,但是当涉及到jpg(只有其中一些)时,我得到一个红色图像(与我在Paint.NET中看到的图像不同).我使用的图像是这个:img.jpg
所以我试过(作为替代方案):
Toolkit.getDefaultToolkit().createImage(new File("img.jpg").getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)
JPEG是不受支持的特殊格式吗?非常感谢
我想使用2D Java API在已经有图像的JLabel上绘制,然后保存生成的编辑图片.
我找不到关于这个特定主题的任何教程,是否有人有任何代码或参考资料显示如何做到这一点?
在JFreeChart中有一个复合图表的概念.
我需要在排列的网格中布局几个图表.
网格中的每个图表都需要有自己独立的标题.
我希望能够将此复合图表保存到png文件中
我会得到一个代码片段,解释如何执行此操作.
有没有很好的库来为Java中的图像渲染文本?
Java有一个2d文本库,http://java.sun.com/docs/books/tutorial/2d/text/index.html但不确定是否有更好的库可供使用.
我有一个从磁盘加载的图像(存储为a BufferedImage),我在a上正确显示JPanel但是当我尝试使用下面的命令重新保存此图像时,图像以红色调保存.
ImageIO.write(image, "jpg", fileName);
Run Code Online (Sandbox Code Playgroud)
注意!image是a BufferedImage,fileName是File指向将以" .jpg" 结尾保存的文件名的对象.
我已经读过ImageIO早期JDK中的方法存在问题,但就我所能找到的那样,我不在其中一个版本上.我正在寻找的是一种解决这个问题而无需更新JDK的方法,但是我已经说过我仍然想知道这个问题在JDK中修复了什么(如果它确实仍然是我正在使用的JDK的一个bug ).
谢谢.
我的问题是如何永久地将一个字符串绘制到图像.
当我绘制字符串然后刷新图像时,字符串在显示屏上消失.
我对拍摄tif图像感兴趣,并在其中添加了一个包含Java文本的图层,如果可能的话,最好使用十二个猴子图像库。
我可以从此处调整代码以将文本添加到tif或仅使用文本创建相同大小的新tif,但不能将它们另存为多页tif。例如:
import javax.imageio.*;
import javax.imageio.stream.ImageOutputStream;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
public class ImageUtil {
public static void main(String[] args) throws Exception {
BufferedImage src = ImageIO.read(new File("/path/to/main.tif"));
BufferedImage text = createTextLayer(src);
BufferedImage[] images = new BufferedImage[]{src, text};
createMultiPage(images);
}
private static BufferedImage createTextLayer(BufferedImage src) {
int w = src.getWidth();
int h = src.getHeight();
BufferedImage img = new BufferedImage(
w, h, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
g2d.drawImage(img, 0, 0, null);
g2d.setPaint(Color.red);
g2d.setFont(new Font("Serif", Font.BOLD, 200));
String s …Run Code Online (Sandbox Code Playgroud) 我需要使日期部分(dd,MMMM,yyyy)垂直对齐.我在日期格式的固定长度的月份和日期问了一个问题?插入填充字母,但我发现它在比例字体的情况下没有帮助(字母的宽度不同).例如,使用Lucida Fax字体:
为不同的日期部件制作不同的标签正在考虑中,但它太手动了.如果列宽很小,很难将文本包裹起来....
谢谢
我有一个通常有效的设置,但我现在发现它有点痛苦.
我有一个JDialog(以前是一个JFrame,但我最近更改了UI流程以删除冗余JFrames)设置为BorderLayout,其中包含三个主要JPanels,标题,内容和页脚.
标题JPanel有一个正常加载的背景图像.但是,我正在调用setMinimumSize/ setPreferredSize/ etc的各种方式(我甚至试过setSize并且setBounds绝望了)并且JPanel没有正确调整大小.该组件的布局是BoxLayout,并且孩子们可以舒适地坐在其中,但这不应该影响我正在尝试使用标题面板本身.
唯一有效的方法是在父级上设置大小JDialog.但我不想这样做/从我所看到的看起来像是糟糕的设计.我还需要计算所有孩子的潜在宽度/高度,添加边距等.
建议我不是在寻找:"使用不同的LayoutManager."
我想了解是否有原因导致子组件不受尊重.
我可以提供代码,但是考虑到我正在处理的互锁系统的数量,隔离一个小的,可运行的段很困难.这是设置大小的相关代码段JPanel.图像尺寸为480*96.
public JPanelThemed(BufferedImage image) {
super();
this.backgroundImage = image;
setAllSimilarConstraints(new Dimension(image.getWidth(), image.getHeight()));
setOpaque(false);
}
// for use with BoxLayout as it requires explicit bounds to be set
public void setAllSimilarConstraints(Dimension dim) {
setPreferredSize(dim);
setMinimumSize(dim);
setMaximumSize(dim);
}
Run Code Online (Sandbox Code Playgroud)