2012-10-26 20 views
7

質問はタイトルにあります。JSeparatorの色を変更するには?

私は現在のようなものをやっている:

jSperator = new JSeparator(); 
jSeparator1.setForeground(new java.awt.Color(255, 51, 51)); 

しかし、セパレータは、彼のデフォルトの色、212212212のようなものを維持します。

答えて

11

代わり’Foreground’

論理がNimbus Look and Feel

金属Lのために異なるかもしれない& Fの’Background’を変更する必要が

enter image description here

import javax.swing.*; 
import java.awt.*; 

public class GridBagSeparator1 { 

    public static void main(String[] args) { 
     JFrame frame = new JFrame("Laying Out Components in a Grid"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JSeparator sep = new JSeparator(SwingConstants.HORIZONTAL); 
     sep.setBackground(Color.black); 
     JSeparator sep1 = new JSeparator(SwingConstants.HORIZONTAL); 
     sep1.setBackground(Color.blue); 
     JSeparator sep2 = new JSeparator(SwingConstants.HORIZONTAL); 
     sep2.setBackground(Color.green); 
     JSeparator sep3 = new JSeparator(SwingConstants.HORIZONTAL); 
     sep3.setBackground(Color.red); 

     frame.setLayout(new GridLayout(4, 0)); 
     frame.add(sep); 
     frame.add(sep1); 
     frame.add(sep2); 
     frame.add(sep3); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 
+2

バックグラウンドを変更しても問題が解決されません。私はMac上でインターフェイスを構築するために、NetbeansのGUIビルダーMatissを使用しています。おそらく、それはルック・アンド・フィールの制限です。 – nathan

+4

'UIManager'を使用し、' Separator.foreground'を変更する必要があります – trashgod

+4

Sythetica Look and Feelでは、背景を変更し、不透明なプロパティをtrueに設定する必要がありました。 –

4

JSeparatorは2色、のための1つを有していますライン、シャドウのライン。 両方を変更して、色をそれぞれ背景と前景に設定することができます。

JSeparator sep = new JSeparator(); 
sep.setForeground(Color.green); // top line color 
sep.setBackground(Color.green.brighter()); // bottom line color 
関連する問題