I am pretty new to java swing and not familiar with paint(). I want to create a button in java swing with above look. Can anyone help me to do this. Any guidance would be grateful. Thanks in advance
5 に答える
Facebook の青の RGB: 59, 89, 182/Hex Code は #3B5998で、フォント ファミリーはTahomaです。
setFocusPainted(false)
これを使用して、 、 、setBackground(new Color(59, 89, 182))
およびのようないくつかの呼び出しで得たものを次に示しますsetFont(new Font("Tahoma", Font.BOLD, 12))
。
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();
}
});
}
}
あなたが同一のものを探していない限り(これは実際の画像を使用せずに取得するのと同じくらい最高です)...ボタンの画像を設定するのが最善の方法です
ボタンの外観を完全にオーバーライドしたい場合、最も一般的な解決策は、独自の を作成すること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());
Oracle javadocでは、jbuttonjavadocが表示されます。
実装されたJbuttonjavaメソッドsetIcon(Icon)
でうまくいきImageIcon
ます!
あなたの例のようなカスタマイズされたボタンを作成するには、グラフィック ドキュメント (画像など) を準備し、それをボタンのプロパティとして設定するのが最善の方法だと思います。
JButton button = new JButton();
button.setIcon(new ImageIcon("yourButtonImage.jpg"));
あなたの例に示されているカスタマイズされたボタンを作成するには、次のコードを使用すると思います:-
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);