相关疑难解决方法(0)

不移动鼠标光标时Java动画会断断续续

我有一个非常简单的动画,一个大字体的文本连续(逐个像素)向左移动.首先将文本转换为图像,然后启动计时器任务,重复(每10-20毫秒)将图像的x坐标递减1,然后执行重绘().

该程序在某些系统上显示出奇怪的行为.在我的电脑上使用nVidia卡,它运行顺畅.在我的Vaio笔记本电脑上,在BeagleBoneBlack和朋友的Mac上,它会严重破坏.它似乎暂停一段时间,然后跳到左边大约10个像素,再次暂停,依此类推.

我是什么树桩在这些系统上动画的事实,只有当你不触摸鼠标口吃.只要您在窗口内移动鼠标光标,无论速度有多慢,或者拖动窗口本身,动画都会非常流畅!

任何人都能解释一下吗?这是程序:

import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;

class Textimg extends JComponent
{
    String      str;
    Font        font;
    int         x = 0;
    final int   ytext = 136;
    Image       img;

    public Textimg(String s)
    {
        str = s;
        font = new Font("Noserif", Font.PLAIN, 96);
        setLayout(null);
    }

    protected void paintComponent(Graphics g)
    {
        if (img == null)
        {
            img = createImage(4800, 272);
            Graphics gr = img.getGraphics();

            gr.setFont(font);
            gr.setColor(Color.BLACK);
            gr.fillRect(0, 0, 4800, 272);
            gr.setColor(new Color(135, 175, …
Run Code Online (Sandbox Code Playgroud)

java animation swing

16
推荐指数
2
解决办法
2333
查看次数

如何以平滑的方式根据容器大小自动调整多个JLabel的字体大小?

我需要根据用于调整容器大小的缩放因子来调整多个JLabel的字体大小.为此,我将每个JLabel的字体设置为null,以便它们采用容器的字体.它有效,但它也会产生奇怪的结果.

具体而言,文本似乎"滞后"在容器后面,有时甚至会被截断.我想避免这种行为.知道怎么样?

模拟行为的示例代码:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.geom.AffineTransform;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class TextResize implements Runnable {

    public static void main(String[] args) {
        TextResize example = new TextResize();
        SwingUtilities.invokeLater(example);
    }

    public void run() {
        JFrame frame = new JFrame("JLabel Text Resize");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setPreferredSize(new Dimension(800, 400));

        Container container = frame.getContentPane();
        container.setLayout(new BorderLayout());

        final …
Run Code Online (Sandbox Code Playgroud)

java fonts swing resize jlabel

6
推荐指数
2
解决办法
5785
查看次数

如何消除大尺寸java swing标签的差距

在我的应用程序中,我有一个字体大小超过200的标签.这个标签包含大的上下(不规则)间隙.我该如何删除它?

这是我的代码:

package Core;

import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class LabelDemo extends JPanel {
    public LabelDemo() {
        super(new GridBagLayout()); 
        JLabel label2;
        GridBagConstraints c = new GridBagConstraints();
        c.gridx = 0;
        c.gridy = 0;
        // Create the other labels.
        label2 = new JLabel("Text-Only Label");
        label2.setBorder(BorderFactory.createTitledBorder("aaaaaaaa"));
        label2.setFont(new Font("Verdana", Font.PLAIN, (int) 220));
        // label2.setBorder(new EmptyBorder(-50, 0, 0, 0));

        // Add the labels.
        add(label2, c);
    }

    /**
     * Create the GUI …
Run Code Online (Sandbox Code Playgroud)

java swing jlabel

6
推荐指数
1
解决办法
2505
查看次数

如何在调整大小时更改JLabel字体大小以填充JPanel可用空间?

这里有一个类似的问题: 如何更改JLabel字体的大小以获取最大大小

但它不适用于倒退.

因此,如果你做得JPanel更大,字体就会增长,但是如果你让它变JLabel小,字体就像以前一样

检查此图片

如何在调整大小时Jlabel根据JPanel大小增加字体?

java swing jlabel

5
推荐指数
1
解决办法
8076
查看次数

如何在java中调整文本大小

我已经看到,在photoshop文本中只需拖动即可轻松调整大小.我们如何在Java中做同样的事情?关于如何在java中调整文本大小的任何想法?添加了在photoshop中调整大小的字母"A"的快照

在此输入图像描述


请告诉我这段代码有什么问题?

public class ResizeImage extends JFrame {

    public ResizeImage(){
        JPanel panel = new JPanel(){
            public void paintComponent(Graphics g) {
                // In your paint(Graphics g) method
                // Create a buffered image for use as text layer
                BufferedImage textLayer = new BufferedImage(240, 240, 
                                              BufferedImage.TYPE_INT_RGB);

                // Get the graphics instance of the buffered image
            Graphics2D gBuffImg = textLayer.createGraphics();

                // Draw the string
                gBuffImg.drawString("Hello World", 10, 10);

                // Rescale the string the way you want it
                gBuffImg.scale(200, 50);

                // Draw the buffered image …
Run Code Online (Sandbox Code Playgroud)

java swing text image java-2d

5
推荐指数
2
解决办法
6608
查看次数

标签 统计

java ×5

swing ×5

jlabel ×3

animation ×1

fonts ×1

image ×1

java-2d ×1

resize ×1

text ×1