Java Swing设置圆形按钮的位置

时间:2015-12-03 10:33:22

标签: java swing button layout-manager

我有一个问题。我创建了圆形按钮,来自其他人的代码参考因为我是初学者。我想为它设定位置,但似乎不成功。我认为错误来自包含

public final class ButtonDesigned extends JButton {
      public  ButtonDesigned (String label) {
            super(label);
            Dimension size = getPreferredSize();
            size.width = size.height = Math.max(size.width,size.height);
            setPreferredSize(size);

            setContentAreaFilled(false);
          }

          protected void paintComponent(Graphics g) {
            if (getModel().isArmed()) {
              g.setColor(Color.lightGray);
            } else {
              g.setColor(getBackground());
            }
            g.fillOval(0, 0, getSize().width-1,getSize().height-1);

            super.paintComponent(g);
          }

          protected void paintBorder(Graphics g) {
            g.setColor(getForeground());
            g.drawOval(0, 0, getSize().width-1,     getSize().height-1);
          }

          Shape shape;
          public boolean contains(int x, int y) {
            if (shape == null || 
              !shape.getBounds().equals(getBounds())) {
              shape = new Ellipse2D.Float(0, 0, getWidth(), getHeight());
            }
            return shape.contains(x, y);
          }

          public static void main(String[] args) {
            JButton button = new  ButtonDesigned ("Click");
            button.setBackground(Color.gray);
            button.setLocation(70, 70);
            button.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent e) {
                    JOptionPane.showMessageDialog(null, "you have clicked");

                }
            });
    enter code here
            JFrame frame = new JFrame();
            frame.getContentPane().add(button);
            frame.getContentPane().setLayout(new FlowLayout());
            frame.setSize(300, 300);
            frame.setVisible(true);
          }
        }

0 个答案:

没有答案