我正在开发一个显示图像的应用程序,并从数据库中播放声音.我正在尝试决定是否使用单独的JFrame从GUI向数据库添加图像.
我只是想知道使用多个JFrame窗口是否是一个好习惯?
我从MeBigFatGuy有趣的问题中获得灵感,在这个连接中,我有一个非常具体的问题Graphisc2D,如何改变BackGround Color取决于是否JTables Row可见JViewPort,
1)如果1st. & last JTables Row在中可见JViewPort,则BackGround将被着色为Color.red
2)如果1st. & last JTables Row在中不可见JViewPort,那么BackGround就会被着色了Color.whatever

来自SSCCE
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import javax.swing.*;
import javax.swing.RepaintManager;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.table.TableModel;
/*
https://stackoverflow.com/questions/1249278/
how-to-disable-the-default-painting-behaviour-of-wheel-scroll-event-on-jscrollpan
*
and
*
https://stackoverflow.com/questions/8195959/
swing-jtable-event-when-row-is-visible-or-when-scrolled-to-the-bottom
*/
public class ViewPortFlickering {
private JFrame frame = new JFrame("Table");
private JViewport viewport = new JViewport(); …Run Code Online (Sandbox Code Playgroud) 请耐心等待,我还是个初学者,请不要发表粗鲁的评论。
所以这个问题的目标是让我学习如何将已经透明的 JFrame 的背景设置为模糊。这就是我现在所拥有的。

正如您所看到的,它是透明的,但并不模糊。我在想也许 Java 有一些进程可以模糊 JAR 中的图像并将其用作背景而不改变原始图像。所以我看了又看,但没有发现任何对我有帮助的东西。
如上所示,JFrame 的背景是一个没有文本的标签,而是将“背景图像”作为标签的图标。
JAR 的组织:
META-INF(folder) > MANIFEST.MF
SystemInfo(folder) > classes and background image
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码,但它不起作用。
setOpacity(); // sets opacity of the background
Color c = Color.WHITE; // default color
setColor(c);
//background = (new JLabel((Icon) new ImageIcon(a)));
BufferedImage mshi = null;
try{mshi = ImageIO.read(new File("SystemInfo/black.png"));}catch(Exception e){e.printStackTrace();}
BufferedImage databuf = new BufferedImage(mshi.getWidth(null),
mshi.getHeight(null),
BufferedImage.TYPE_INT_BGR);
Graphics g = databuf.getGraphics();
g.drawImage(mshi, 455, 255, null);
float[] blurKernel = {
1 / 9f, 1 / 9f, 1 / …Run Code Online (Sandbox Code Playgroud)