相关疑难解决方法(0)

在半透明框架/面板/组件上重新涂漆.

我正在尝试在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)

java macos swing awt paint

15
推荐指数
1
解决办法
2万
查看次数

如何在java中以全屏独占模式处理键盘和鼠标的事件?

在被动渲染模式中,可以使用KeyListenerActionListener接口来处理来自用户的事件.

全屏模式下事件处理的正确方法是什么?请扩展此骨架,提供鼠标点击和按键事件的实现,请不要膨胀您的示例(示例启动全屏独占模式,使用Timer更新窗口中的图形):

import java.applet.Applet;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.Timer;

public class applet extends Applet
{
    Timer timer;
    JFrame frame;
    DisplayMode[] displayModes = new DisplayMode[] {
            new DisplayMode(1280, 800, 32, 60)
    };

    BufferStrategy bufferStrategy;
    Rectangle bounds;

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     * @param args
     */

    public void init()
    {

        GraphicsEnvironment …
Run Code Online (Sandbox Code Playgroud)

java keyboard mouse swing fullscreen

12
推荐指数
2
解决办法
1万
查看次数

尽快清除透明的BufferedImage

我有一个透明的BufferedImage使用以下代码创建(不相关如何创建,我认为):

            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice gs = ge.getDefaultScreenDevice();
            GraphicsConfiguration gc = gs.getDefaultConfiguration();

            Rectangle screen = transformationContext.getScreen();

            // Create an image that supports transparent pixels
            return gc.createCompatibleImage((int) screen.getWidth(), (int) screen.getHeight(),
                    Transparency.BITMASK);
Run Code Online (Sandbox Code Playgroud)

如何在不重新创建图像的情况下以最快的方式清除图像(处于与创建状态相同的空图像)?重新创建映像会给GC带来负担,暂停VM并冻结UI.

java bufferedimage awt graphics2d

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×3

awt ×2

swing ×2

bufferedimage ×1

fullscreen ×1

graphics2d ×1

keyboard ×1

macos ×1

mouse ×1

paint ×1