我想創建一個簡單的顏色選擇器面板在Java爲一個更大的項目。我有一個框架,應該包括一個RGB滑塊面板和三個文本字段顯示其值。我能夠毫無問題地添加滑塊面板,但是當我嘗試添加文本字段面板時,整個事情就會混亂起來,並且沒有任何面板顯示。我唯一的問題是如何解決面板的這個問題。謝謝。JFrame不顯示多個面板
這裏是我的代碼:
//importing necessary libraries
import java.awt.*;
import javax.swing.*;
//Object extends JFrame
public class FrameObject extends JFrame
{
//declaring the panels, one for the color sliders and the other for the text fields
private JPanel color_panel;
private JPanel textFileds;
//arrays to hold the J components for further efficiency
private JSlider[] RGB = new JSlider[3];
private JTextField[] RGBFileds = new JTextField[3];
public FrameObject()
{
//Preparing the frame
super("Color panel");
setVisible(true);
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//A grid layout to give desired orientation
color_panel = new JPanel(new GridLayout(3, 1));
textFileds = new JPanel(new GridLayout(3, 1));
//initializing the individual components through a loop in the arrays
for(int c=0; c<RGB.length; c++)
{
RGB[c] = new JSlider(SwingConstants.HORIZONTAL,0,255,100);
RGBFileds[c] = new JTextField(12);
//Adding each component to its specific panel
color_panel.add(RGB[c]);
textFileds.add(RGBFileds[c]);
}
//adding the sub panels to the main panel.
add(color_panel,BorderLayout.CENTER);
add(textFileds,BorderLayout.EAST);
}
}
public class FrameTest
{
public static void main(String[] args)
{
FrameObject f = new FrameObject();
}
}
只有在填充幀內容後才調用'setVisible(true)'。將運行時添加組件添加到可見組件需要重新驗證和重新繪製。 – kiheru
謝謝一堆。 –