2017-07-04 7 views
0

私は3つのラジオボタンとこれらのボタンの下のパネルを持つスイングフレームを持っています。パネルはラジオボタンの各オプションごとに異なる必要があります。 これらのラジオボタンがクリックされると、パネルを変更する必要があります。 ラジオボタンとしてフォームを変更する方法

は、私が試した:ユーザーがプログラムの実行時に別のラジオボタンを選択して

public RadioFrame() { 
    initComponents(); 
    groupbuttons(); 
    changePanel(); 
} 

private void groupbuttons(){ 
    //code to group these 3 buttons. 
} 

private void changePanel(){ 
    if (jradioButton1.isSelected()){ 
    //change the panel for radiobutton1 
    } 
    if (jradioButton2.isSelected()){ 
    //change the panel for radiobutton2 
    }  if (jradioButton3.isSelected()){ 
    //change the panel for radiobutton3 
    } 
} 

をしかし、これはフレームが最初にロードされたときにのみ動作しますが、それは変更されません。

どうすればこの問題を解決できますか?

+1

は 'JTabbedPane'よりよい解決策はありませんか? –

+0

@TimothyTruckle、それは一般的ですが、時にはカスタムコントロールが必要な場合もあります。 –

答えて

4

CardLayoutでJPanelを使用できます。各ページはJPanelであり、外側のJPanelの内側にあるカードです。

UPDATE:

を別のカードから切り替えるには、あなたがどうなる:

CardLayout layout = (CardLayout)cardPanel.getLayout(); 
layout.show(cardPanel, "card name"); 

あなたが簡単にあなたのNetbeansのビジュアル・エディタでページをデザインすることができます。

UPDATE 2:お使いの場合には

CardLayout layout = (CardLayout)cardPanel.getLayout(); 
if (jradioButton1.isSelected()){ 
    layout.show(cardPanel, "panel1"); 
} 
if (jradioButton2.isSelected()){ 
    layout.show(cardPanel, "panel2"); 
} 
if (jradioButton3.isSelected()){ 
    layout.show(cardPanel, "panel3"); 
} 
関連する問題