2

三角形のボタンを作成しようとしています。

私はそれを行う方法がわからないので、作成する際に助けが必要になるので、作成方法を説明してください!

これが私が達成しようとしていることです:

ここに画像の説明を入力

何か案は?

4

5 に答える 5

3

swingGUI を使用してカスタムメイドの GUI ボタン​​を作成するのは困難です。シンプルに、netbeans IDE のボタンに三角形を作成します。

public class TriangleButton extends javax.swing.JFrame {


public TriangleButton() {
    initComponents();
}

private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jButton1 = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jButton1.setIcon(new javax.swing.ImageIcon("triangle.png")); 
    jButton1.setText("text1");
    jButton1.setActionCommand("hii");
    jButton1.setBorder(null);
    jButton1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
    jButton1.setMargin(new java.awt.Insets(0, 0, 0, 0));
    jButton1.setPressedIcon(new javax.swing.ImageIcon("triangle.png")); 
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addGap(104, 104, 104)
            .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(90, Short.MAX_VALUE))
    );
    jPanel1Layout.setVerticalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addGap(52, 52, 52)
            .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 177, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(93, Short.MAX_VALUE))
    );

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addContainerGap())
    );

    pack();
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    System.out.println("Hiiiiii");
}                                        


public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new TriangleButton().setVisible(true);
        }
    });
}


private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;


![http://i.stack.imgur.com/KUPWQ.jpg][1]}
于 2013-06-04T19:34:44.983 に答える
2

私が知っている標準コンポーネントはありません。独自に作成する必要があります。

似ているものを拡張するか、単に jpanel を拡張します。

http://www.programmersheaven.com/mb/java/247058/247058/draw-a-triangle/ は、三角形を描画するためのコードを提供します。

より「ボタン」のようにするには、リスナーが必要になります。

于 2013-06-04T17:58:11.970 に答える