我在阅读一本关于swing 的书时编写了一个小程序,它在两个标签之间创建了一个JSplitPane。
问题是 JSplitPane 几乎看不到(至少在我的操作系统 - MAC OS Lion 中)并且在其上设置一些属性(如前景色)似乎不起作用。
这是代码:
//Demonstrate a simple JSplitPane
package swingexample4_6;
import javax.swing.*;
import java.awt.*;
public class SplitPaneDemo {
//constructor
public SplitPaneDemo()
{
//Create a new JFrame container.
//Use the default border layout
JFrame jfrm = new JFrame("Split Pane Demo");
//Give the frame an initial size
jfrm.setSize(380, 150);
//Terminate the program when the user closes the application
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//--Make two labels to show the split pane
JLabel jlab = new JLabel(" Left side: ABCDEFGHIJKLMNOPQRSTUVWXYZ");
JLabel jlab2 = new JLabel(" Right side: ABCDEFGHIJKLMNOPQRSTUVWXYZ");
//Set the minimum size for each label
//This step is not technically needed to use a split pane,
//but it enables the split pane resizing features to be
//used to their maximum extent
jlab.setMinimumSize(new Dimension(90, 30));
jlab2.setMinimumSize(new Dimension(90, 30));
//--Create a split pane
JSplitPane jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, jlab, jlab2);
//Code to get a list of component names in the console
Component[] listComponents = jsp.getComponents();
String theList;
for (Component myComponent: listComponents)
{
theList = myComponent.toString();
System.out.println(theList);
}
//Add the split pane to the content pane
jfrm.getContentPane().add(jsp);
//Display the frame
jfrm.setVisible(true);
}
public static void main(String[] args) {
//Create the frame on the event dispatching thread
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
new SplitPaneDemo();
}
});
}
}
有什么办法可以改变它的颜色,让它真正脱颖而出?
谢谢你。
最佳答案
JLabel
默认是 NON_Opaque
, simple 是透明的,你可以
JLabels
更改为 JComponent
或 JPanel
可能会更好 JLabel#setOpaque(true)
关于java - 如何更改 JSplitPane 的颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10109336/