1

グラデーションの背景と角の丸いカスタム JButton クラスがあります。setText() をオーバーライドする必要がありますか、またはテキストを表示するにはどうすればよいですか? setText("text") は効果がありません。

UPD: MadProgrammer が提案したように、setContentAreaFilled(false) を試してみましたが、この問題は解決しましたが、別の問題が発生しました。異なるタブにそのようなボタンがあり、それらが再描画されると、すべてが同じタブにあったように数ミリ秒間表示されます。更新されたコードは次のとおりです。

public class DarkGradientButton extends JButton {
private Color startColor = new Color(178, 178, 178);
private Color endColor = new Color(131, 131, 131);

private Color disstartColor = new Color(252, 252, 252);
private Color disendColor = new Color(221, 221, 221);

private Color enstartColor = new Color(178, 178, 178);
private Color enendColor = new Color(131, 131, 131);

public DarkGradientButton(String text, ImageIcon ii) {
    super(text, ii);
    this.setContentAreaFilled(false);
}

public DarkGradientButton() {
    super();
    this.setContentAreaFilled(false);
}

@Override
protected void paintComponent( Graphics g )
{
    g.setColor(new Color(246,250,245));        
    int h = getHeight();
    int w = getWidth();
    GradientPaint gradientPaint = new GradientPaint( 0 , 0 , startColor , 0 , h , endColor );
    int[] x = {0, 1, w-1, w, w,   w-1, w-2, 2,   1, 0};
    int[] y = {1, 0, 0,   1, h-3, h-2, h-1, h-1, h-2, h-3};
    Graphics2D graphics2D = (Graphics2D)g;
    graphics2D.setPaint( gradientPaint );
    graphics2D.fillPolygon(x, y, x.length);    
    graphics2D.setColor(this.getForeground());
    super.paintComponent( g );
}


public void makeDisable() {
    startColor = disstartColor;
    endColor = disendColor;        
    Graphics g = this.getGraphics();
    paintComponent(g);
    this.repaint();
}

public void makeEnable() {
    startColor = enstartColor;
    endColor = enendColor;        
    Graphics g = this.getGraphics();
    paintComponent(g);
    this.repaint();
}
}


タブのボタン (これは Netbeans が私のために生成したものです):

callStartButton = new gui.DarkGradientButton(language[25], new ImageIcon("pic\\call-start.png"));

callStartButton.setBorder(null);
    callStartButton.setForeground(new java.awt.Color(255, 255, 255));
    callStartButton.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
    callStartButton.setPreferredSize(new java.awt.Dimension(95, 23));
    callStartButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            callStartButtonActionPerformed(evt);
        }
    });


org.jdesktop.layout.GroupLayout callPanelLayout = new org.jdesktop.layout.GroupLayout(callPanel);
    callPanel.setLayout(callPanelLayout);
    callPanelLayout.setHorizontalGroup(
        callPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(callPanelLayout.createSequentialGroup()
            .add(callPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(callPanelLayout.createSequentialGroup()
                    .add(19, 19, 19)
                    .add(callStartButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                    .add(callStopButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(callPanelLayout.createSequentialGroup()
                    .addContainerGap()
                    .add(numberLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 63, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                    .add(callPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(numberExampleLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 128, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(callPanelLayout.createSequentialGroup()
                            .add(codeField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 47, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(numberField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
                .add(callPanelLayout.createSequentialGroup()
                    .add(25, 25, 25)
                    .add(callProgressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 190, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
            .addContainerGap(14, Short.MAX_VALUE))
    );


callPanelLayout.setVerticalGroup(
        callPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(callPanelLayout.createSequentialGroup()
            .addContainerGap()
            .add(callPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(numberField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(codeField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(numberLabel))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(numberExampleLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .add(18, 18, 18)
            .add(callPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(callStartButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(callStopButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 8, Short.MAX_VALUE)
            .add(callProgressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .add(13, 13, 13))
    );

org.jdesktop.layout.GroupLayout testPanelLayout = new org.jdesktop.layout.GroupLayout(testPanel);
    testPanel.setLayout(testPanelLayout);
    testPanelLayout.setHorizontalGroup(
        testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(testPanelLayout.createSequentialGroup()
            .add(8, 8, 8)
            .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(testPanelLayout.createSequentialGroup()
                    .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                        .add(ascii, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .add(0, 0, 0)
                    .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                        .add(hex, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .add(jScrollPane9)))
                .add(lightGradientPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(testPanelLayout.createSequentialGroup()
                    .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(testPanelLayout.createSequentialGroup()
                            .add(testManagementPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(0, 0, 0)
                            .add(testResultPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .add(testPanelLayout.createSequentialGroup()
                            .add(testModemHeaderPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(0, 0, 0)
                            .add(testResultHeaderPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(0, 0, 0)
                    .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(callHeaderPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(callPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
            .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                    .add(modemModelPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(modemHeaderPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(modemModelHeaderPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(modemParamsPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .add(simPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 240, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(testModemHeaderPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 240, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .add(17, 17, Short.MAX_VALUE))
        .add(testPanelLayout.createSequentialGroup()
            .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, testPanelLayout.createSequentialGroup()
                    .add(10, 10, 10)
                    .add(userGuideButton5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(irzLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 117, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(testPanelLayout.createSequentialGroup()
                    .add(309, 309, 309)
                    .add(saveASCIILogButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(0, 0, Short.MAX_VALUE)))
            .addContainerGap())
    );
    testPanelLayout.setVerticalGroup(
        testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(testPanelLayout.createSequentialGroup()
            .add(15, 15, 15)
            .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                .add(testPanelLayout.createSequentialGroup()
                    .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(testModemHeaderPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(testResultHeaderPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(callHeaderPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(testResultPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(testManagementPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(callPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(22, 22, 22)
                    .add(lightGradientPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(0, 0, 0)
                    .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(jScrollPane9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(hex, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, ascii, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .add(testPanelLayout.createSequentialGroup()
                    .add(modemModelHeaderPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(0, 0, 0)
                    .add(modemModelPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(0, 0, 0)
                    .add(modemHeaderPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(0, 0, 0)
                    .add(modemParamsPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(testModemHeaderPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(0, 0, 0)
                    .add(simPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(testPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(testPanelLayout.createSequentialGroup()
                    .add(saveASCIILogButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(userGuideButton5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(org.jdesktop.layout.GroupLayout.TRAILING, testPanelLayout.createSequentialGroup()
                    .add(0, 34, Short.MAX_VALUE)
                    .add(irzLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 61, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap())))
    );

    jTabbedPane1.addTab("tab1", testPanel);

jLayeredPane1.add(jTabbedPane1, javax.swing.JLayeredPane.DEFAULT_LAYER);
    jTabbedPane1.getAccessibleContext().setAccessibleName("");

    getContentPane().add(jLayeredPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 5, -1, 660));
4

4 に答える 4

4

setText が機能しない主な理由は、その上に絵を描いているためです

g.fillRect(0, 0, w, h);

彼の ui がsuper.paintComponent(g)呼び出し中のテキストをレンダリングしていることがわかります。

アップデート

次のコードを使用していくつかのタブを表示しましたが、問題は見つかりませんでした...

パッケージテスト;

import java.awt.BorderLayout; java.awt.GridBagLayout をインポートします。java.util.List をインポートします。import javax.swing.*; javax.swing.plaf.ColorUIResource をインポートします。

パブリック クラス TestButton {

public static void main(String[] args) {
    Object grad = UIManager.get("Button.gradient");
    List gradient;
    if (grad instanceof List) {
        gradient = (List) grad;
        System.out.println(gradient.get(0));
        System.out.println(gradient.get(1));
        System.out.println(gradient.get(2));
        System.out.println(gradient.get(3));
        System.out.println(gradient.get(4));
        //gradient.set(2, new ColorUIResource(221, 232, 243));//origal Color
        //gradient.set(2, new ColorUIResource(255, 255, 255));//origal Color
        //gradient.set(2, new ColorUIResource(184, 207, 229));//origal Color
        gradient.set(2, new ColorUIResource(190, 230, 240));
        gradient.set(3, new ColorUIResource(240, 240, 240));
        gradient.set(4, new ColorUIResource(180, 200, 220));
        //UIManager.put("Button.background", Color.pink);
    }
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            new TestButton().makeUI();
        }
    });
}

public void makeUI() {
    JButton button = new JButton("Click");
    JFrame frame = new JFrame();
    frame.setLayout(new BorderLayout());

    JTabbedPane tab = new JTabbedPane();
    tab.add("Help", createPane(1));
    tab.add("Help", createPane(2));
    tab.add("Help", createPane(3));
    tab.add("Help", createPane(4));
    tab.add("Help", createPane(5));

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(tab);
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
}

protected JPanel createPane(int index) {

    JPanel panel = new JPanel(new GridBagLayout());
    panel.add(new JButton("Hello " + index));

    return panel;

}

}
于 2012-07-17T10:29:46.733 に答える
2
  • すべてが同じ色のテーマを持ってUIManagerいる場合は、で値を変更することができますJButtons

  • その後、API に実装されている残りのメソッドに問題はありません

  • オーバーライドすることができますBasicButtonUI。たとえば、MetalButtonUIの場合

コードUIManager

import java.util.List;
import javax.swing.*;
import javax.swing.plaf.ColorUIResource;

public class GradieltButton {

    public static void main(String[] args) {
        Object grad = UIManager.get("Button.gradient");
        List gradient;
        if (grad instanceof List) {
            gradient = (List) grad;
            System.out.println(gradient.get(0));
            System.out.println(gradient.get(1));
            System.out.println(gradient.get(2));
            System.out.println(gradient.get(3));
            System.out.println(gradient.get(4));
            //gradient.set(2, new ColorUIResource(221, 232, 243));//origal Color
            //gradient.set(2, new ColorUIResource(255, 255, 255));//origal Color
            //gradient.set(2, new ColorUIResource(184, 207, 229));//origal Color
            gradient.set(2, new ColorUIResource(190, 230, 240));
            gradient.set(3, new ColorUIResource(240, 240, 240));
            gradient.set(4, new ColorUIResource(180, 200, 220));
            //UIManager.put("Button.background", Color.pink);
        }
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new GradieltButton().makeUI();
            }
        });
    }

    public void makeUI() {
        JButton button = new JButton("Click");
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(button);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
于 2012-07-17T09:59:02.587 に答える
0

setText()をどこで呼び出すかわかりません。コンポーネントがペイントされた後にそれを行おうとすると、グラフィカルな変更を表示するためにrePaint()を呼び出す必要があります。いいえ、setText()をオーバーライドする必要はありません。ポイントは何ですか?

于 2012-07-17T09:53:45.117 に答える
0

論理的なケースでは、をオーバーライドする必要はありませんが、setText()試すことができます。

于 2012-07-17T09:52:23.027 に答える