web-dev-qa-db-ja.com

カスタマイズされた外観のJButtonを作成する

enter image description here

私はJavaスイングに慣れておらず、Paint()に慣れていません。Javaスイングで上記の外観のボタンを作成したいです。誰か助けてくれませんか。これを行うために。どんなガイダンスもありがたいです。よろしくお願いします。

8
Nikhil

Facebookの青いRGBをグーグルで検索しました:59、89、182/Hex Code is#3B5998 and Font family:Tahoma

これを使用して、setFocusPainted(false)setBackground(new Color(59, 89, 182))setFont(new Font("Tahoma", Font.BOLD, 12))のようないくつかの呼び出しで得たものを次に示します。

enter image description here

import Java.awt.Color;
import Java.awt.FlowLayout;
import Java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Test {

    public Test() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());
        JButton b = new JButton("Log In");//http://www.chacha.com/question/what-are-the-rgb-values-for-the-background-color-of-comments-on-facebook
        b.setBackground(new Color(59, 89, 182));
        b.setForeground(Color.WHITE);
        b.setFocusPainted(false);
        b.setFont(new Font("Tahoma", Font.BOLD, 12));//http://answers.yahoo.com/question/index?qid=20070906133202AAOvnIP
        frame.add(b);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Test();
            }
        });
    }
}

あなたが同一のものを探しているのでない限り(これは実際の画像を使用せずに得られるのとほぼ同じくらい最高のIMOです)...ボタンの画像を設定するよりも最良の方法です

13
David Kroukamp

ボタンの外観を完全に上書きしたい場合、最も一般的な解決策は、独自のButtonUIを作成することです。

class MyButton extends BasicButtonUI {
    @Override
    public void Paint(Graphics g, JComponent c) {
        AbstractButton b = (AbstractButton) c;
        ButtonModel model = b.getModel();
        ...
    }
}

次に、ボタンの状態(ロールオーバー、フォーカス、武装、押されたなど)を考慮して、好きなようにペイントできます。これを行う方法の基本的なアイデアについては、スーパークラスの実装をご覧ください。

次に、変更するボタンのUIを設定するだけです。

button.setUI(new MyButton());
6

Oracle javadocでは、jbutton javadoc が表示されます。

Jbutton JavaメソッドsetIcon(Icon) with ImageIcon実装でうまくいきます!

2
Aktarel

BasicButtonUIを使用して、カスタマイズされた外観を作成できます。

      JButton btn = new JButton("codelife.de");
      btn.setUI(new CustomizedButtonUI(Color.RED, Color.ORANGE, Color.GREEN));

訪問: http://codelife.de/2014/08/13/swing-jbutton-with-customized-look/

2
codelife

あなたの例のようにカスタマイズされたボタンを作成するには、グラフィックドキュメント(画像など)を準備し、それをボタンのプロパティとして設定するのが最善の方法だと思います。

JButton button = new JButton();
button.setIcon(new ImageIcon("yourButtonImage.jpg"));
2
Juvanis

あなたの例に示されているカスタマイズされたボタンを作成するには、次のコードを使用すると思います:-

JButton button = new JButton("Log In");
button.setFont(new Font("Serif",Font.BOLD,20));
button.setBackground(new Color(0,51,204));//import Java.awt.Color;
button.setForeground(Color.WHITE);
button.setFocusPainted(false);
button.setBorderPainted(false);
1
Manjeet Rani