2011-01-31 6 views
0

TextAreaの背景を不透明にしたいとします。 netbeansでswing guiフォームを使用しています。TextAreaの背景を不透明にします

画像の内側にある指示を重複させたいのですが(see this picture)、画像の前にあるテキストは見えないという問題があります。私は実際には不透明な背景が問題であるかどうかはわかりません(私は階層化された枠を使って画像が配置されたJLabelを作成し、指示を配置したTextAreaをオーバーラップさせています)。

問題の原因を特定できますか?

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 
} 

P.S.:ここenter image description here

コードです私はスイングビルダー/スイングGUIフォームを使用しています。

+1

これはおそらくあなたがいくつかのコードを共有し、これまでに試したことを私たちに示すなら助けになるでしょう。また、あなたの質問の画像では、テキスト**の背景は**不透明です。それが透明であることを意味していますか? –

答えて

-1

画面に手動でテキストを描画する独自のコンポーネントを作成します。それはスイングではなく、Javaでゲームを作る方法です。