Java 使文本区域的背景不透明

Java 使文本区域的背景不透明,java,swingbuilder,swing-app-framework,Java,Swingbuilder,Swing App Framework,我想使文本区域的背景不透明。我在netbeans使用swing gui表单 我想将图像()前面的指令重叠,但问题是如果文本位于图像前面,则无法看到它们。我真的不知道不是不透明的背景是不是这里的问题(我使用分层窗格在图片所在的位置有一个JLabel,并与我放置指令的文本区域重叠) 你能帮我找出问题所在吗? 代码如下: import java.awt.Color; import javax.swing.ImageIcon; import javax.swing.JFrame; public cl

我想使文本区域的背景不透明。我在netbeans使用swing gui表单

我想将图像()前面的指令重叠,但问题是如果文本位于图像前面,则无法看到它们。我真的不知道不是不透明的背景是不是这里的问题(我使用分层窗格在图片所在的位置有一个JLabel,并与我放置指令的文本区域重叠)

你能帮我找出问题所在吗?

代码如下:

import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class About extends javax.swing.JDialog {

public About(JFrame owner) {
    super(owner, true);
    initComponents();
    setSize(500, 500);
    setLocation(300, 120);
    getContentPane().setBackground(Color.getHSBColor(204, 204, 255));
    jLabel1.setIcon(new ImageIcon("HangmanStartlight.jpg"));

 }

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

    jTabbedPane1 = new javax.swing.JTabbedPane();
    jLayeredPane1 = new javax.swing.JLayeredPane();
    jLabel1 = new javax.swing.JLabel();
    jScrollPane1 = new javax.swing.JScrollPane();
    jTextArea1 = new javax.swing.JTextArea();

    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

    jLabel1.setText("jLabel1");
    jLabel1.setBounds(0, 0, 420, 290);
    jLayeredPane1.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER);

    jTextArea1.setColumns(20);
    jTextArea1.setFont(new java.awt.Font("Microsoft Sans Serif", 1, 14)); // NOI18N
    jTextArea1.setForeground(new java.awt.Color(51, 0, 51));
    jTextArea1.setRows(5);
    jTextArea1.setText("Hangman\n\nGuess the \"HIDDEN PHRASE\" to proceed to the next\nlevel.  Hangman is filled with several words, \npresented in random order each time you play.\n\nhOw To pLay!!!\n\nYou can select letters by clicking on the letter buttons\nshown at the window.\n\nBe very careful! 'coz you are only allowed 10 wrong\nguesses per puzzle.\n\nYou will at the corner Top-Left of the window your \n\"Name\", your \"Score\", your \"Level\", your \"Lives Left\"\nand also the \"Life Line\" which you can use as a Hint.\n\nEnjoy Playing and Have Fun :)");
    jTextArea1.setWrapStyleWord(true);
    jScrollPane1.setViewportView(jTextArea1);

    jScrollPane1.setBounds(0, 0, 420, 280);
    jLayeredPane1.add(jScrollPane1, javax.swing.JLayeredPane.DEFAULT_LAYER);

    jTabbedPane1.addTab("tab1", jLayeredPane1);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(26, 26, 26)
            .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 427, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(39, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(21, 21, 21)
            .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 313, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(128, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLayeredPane jLayeredPane1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration
}
导入java.awt.Color;
导入javax.swing.ImageIcon;
导入javax.swing.JFrame;
关于扩展javax.swing.JDialog的公共类{
公共关于(JFrame所有者){
超级(所有者,真实);
初始化组件();
设置大小(500500);
设定位置(300120);
getContentPane().setBackground(Color.getHSBColor(204204255));
jLabel1.setIcon(新图像图标(“HangmanStartlight.jpg”);
}
@抑制警告(“未选中”)
// 
私有组件(){
jTabbedPane1=newjavax.swing.JTabbedPane();
jLayeredPane1=newjavax.swing.JLayeredPane();
jLabel1=newjavax.swing.JLabel();
jScrollPane1=newjavax.swing.JScrollPane();
jTextArea1=newjavax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE\u ON\u CLOSE);
jLabel1.setText(“jLabel1”);
jLabel1.立根(0,0,420,290);
jLayeredPane1.add(jLabel1,javax.swing.JLayeredPane.DEFAULT_层);
jTextArea1.设置列(20);
jTextArea1.setFont(新的java.awt.Font(“Microsoft无衬线字体”,1,14));//NOI18N
jTextArea1.set前台(新java.awt.Color(51,0,51));
jTextArea1.设置行(5);
jTextArea1.setText(“刽子手\n\n使用\”隐藏短语\"要进入下一级,Hangman会被几个单词填满,\n每次播放时都会随机排列。\n\n如何播放!!!\n\n您可以通过单击窗口上的字母按钮来选择字母。\n\n请非常小心!因为每个拼图只允许10个错误的字母。\n\n您将在窗口的左上角\n“姓名”,你的“分数”,你的“等级”,你的“生命之左”以及你可以作为提示的“生命线”。\n\n快乐玩耍和娱乐:);
jTextArea1.setWrapStyleWord(true);
jScrollPane1.setViewportView(jTextArea1);
jScrollPane1.setBounds(0,0420280);
添加(jScrollPane1,javax.swing.JLayeredPane.DEFAULT_层);
jTabbedPane1.addTab(“tab1”,jLayeredPane1);
javax.swing.GroupLayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(布局);
layout.setHorizontalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(26,26,26)
.addComponent(jTabbedPane1,javax.swing.GroupLayout.PREFERRED_SIZE,427,javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(39,简称最大值))
);
layout.setVerticalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(21,21,21)
.addComponent(jTabbedPane1,javax.swing.GroupLayout.PREFERRED_SIZE,313,javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(128,简称最大值))
);
包装();
}// 
//变量声明-不修改
私有javax.swing.JLabel jLabel1;
私有javax.swing.JLayeredPane jLayeredPane1;
私有javax.swing.JScrollPane-jScrollPane1;
私有javax.swing.JTabbedPane jTabbedPane1;
私有javax.swing.JTextArea jTextArea1;
//变量结束声明
}

p、 我正在使用swing builder/swing gui表单。

尝试使用中的一个技巧。

编写自己的组件,在屏幕上手动绘制文本。这就是游戏是用Java制作的,而不是用swing…

如果您能分享一些代码并向我们展示您迄今为止所做的尝试,可能会有所帮助。另外,在您的问题中的图片中是的,文本的背景是不透明的。你的意思是希望它是透明的吗?