2016-09-24 20 views
0

EclipseでWindowBuilderを使用しています。私のアプリケーションの特定の種類のボタンに同じプロパティを適用するために、次のメソッドを作成しました。デザインビューでJbuttonが消える

デザインビューでは、私のbtn_Subscribeは表示されませんが、デバッグ時に表示されます。 しかし、私のbtn_Loginはデザインビューで表示されます...私はそれを取得しません。 JButtonをコンテンツに追加するときに私のメソッドを使用しています

// ************************ LOGIN BUTTON ************************ \\ 

JButton btn_Login = new JButton(""); 
btn_Login.setIcon(new ImageIcon(DietProject.class.getResource("/images/img_login.png"))); 
btn_Login.setBounds(226, 89, 91, 32); 

frmDietPlanner.getContentPane().add(setupCustomButton(btn_Login)); 
// ************************ SUBSCRIBE BUTTON ************************ \\ 

JButton btn_Subscribe = new JButton(""); 
btn_Subscribe.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
    } 
}); 
btn_Subscribe.setIcon(new ImageIcon(DietProject.class.getResource("/images/img_subscribe.png"))); 
btn_Subscribe.setBounds(10, 11, 103, 32); 
frmDietPlanner.getContentPane().add(setupCustomButton(btn_Subscribe)); 








private JButton setupCustomButton(JButton jb) 
{ 
    // Remove the ugly border and background on the button 
    jb.setBorderPainted(false); 
    jb.setBorder(null); 
    jb.setContentAreaFilled(false); 
    jb.setCursor(new Cursor(Cursor.HAND_CURSOR)); 

    return jb; 
} 
+0

は、それが唯一のエディタでの問題や、出力フレームに表示さdoesntのボタンですか? –

+0

出力フレームの意味が不明です。エディタ/デザインビューには表示されませんが、アプリケーションを実行すると表示されます。 – blacksaibot

答えて

0

....私が使用する予定のすべての単一のボタンにこのコードを実行するように感じることはありません。

frmDietPlanner.getContentPane().add(setupCustomButton(btn_Login)); 
frmDietPlanner.getContentPane().add(setupCustomButton(btn_Subscribe)); 

ことで
あなたが同じ場所に2つのボタンが追加されています。 setBoundsレイアウトマネージャをnullに設定する場合。問題と解決策のための
MCVEは次のようになります。

import javax.swing.JButton; 
import javax.swing.JFrame; 

public class Frame extends JFrame { 

    Frame() 
    { 
     ///////////////////////////// 
     setLayout(null); 
     //////////////////////////// 
     setSize(400,400); 
     JButton btn_Login = new JButton("A"); 
     btn_Login.setBounds(226, 89, 91, 32); 
     getContentPane().add(btn_Login); 

     JButton btn_Subscribe = new JButton("B"); 
     btn_Subscribe.setBounds(10, 11, 103, 32); 
     getContentPane().add(btn_Subscribe); 
     setVisible(true); 
    } 

    public static void main(String[] args) 
    { 
     new Frame(); 
    } 
} 
+0

さて、それぞれのボタンごとにコピーして貼り付けなくても、それらのボタンにプロパティを適用することを提案するとどうでしょうか?私は約12個のボタンを持っています... – blacksaibot

+0

あなたがしたように 'setupCustomButton'を使用してください。それは結構です。あなたが提起した問題とは無関係です。 [MCVE]は、問題に集中するのに役立ち、答えようとする人たちを助けます。 – c0der

0

私が次のことを行うと、デザイナーにはうまく表示されます。私は同じプロパティを適用するメソッドを使用すると、デザイナーがボタンを表示しないようにする理由がわかりません。同時に、ログインボタンでも問題なく動作します!私は本当に私がfrmDietPlannerがデフォルトBorderLayoutマネージャでありJFrameであると仮定し

//frmDietPlanner.getContentPane().add(setupCustomButton(btn_Subscribe)); 
frmDietPlanner.getContentPane().add(btn_Subscribe); 
btn_Subscribe.setBorderPainted(false); 
btn_Subscribe.setBorder(null); 
btn_Subscribe.setContentAreaFilled(false); 
btn_Subscribe.setCursor(new Cursor(Cursor.HAND_CURSOR)); 
+0

これは、常に[MCVE]を投稿する必要がある良い例です。それらのプロパティと 'setupCustomButton'は無関係です。 – c0der

関連する問題