gpt4 book ai didi

java - JButton 背景图片

转载 作者:行者123 更新时间:2023-12-04 05:09:33 25 4
gpt4 key购买 nike

我正在编写一个 POS 系统(销售点)来取乐。 POS 系统的一个典型特征是针对不同产品具有不同背景颜色的按钮。但我不是指按钮图像背后的背景,我的意思是在这张随机图片中,我从谷歌图片中得到了:
enter image description here

编辑:注意我改变了系统的外观和感觉

我需要用我的按钮做类似的事情。我知道这可能有几种方法:

  • 为我的按钮创建外观和感觉?
  • 完全覆盖我的 JButtons 中的 paintComponenet 方法(但这是一种非常可悲的方法......当我覆盖它时没有绘制边框 + 文本......显然是个坏主意)
  • 使用 button.setContentAreaFilled(false);,并在按钮后面放置一个与按钮大小相同的 JPanel。

  • 我真的不知道如何创建自己的外观和感觉,这听起来很痛苦,尤其是对于 1 个按钮,我听说一些关于打破外观和感觉的事情让我害怕这个想法。第 3 种方式听起来很合理,而且不是非常困难,但我是什么 最好的做我想做的事的方法?

    现在我创建按钮的代码是这样的:
    JButton b = new JButton(text);
    b.addActionListener(this);
    b.setFont(Main.f);
    b.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    buttons.add(b);
    return b;

    我弄乱了这段代码(主要是为了好玩,而不是实用):
    JButton b = new JButton(text){
    public void paintComponent(Graphics g){
    super.paintComponent(g);
    Color bg = getBackground();
    int borderchange = -50;
    g.setColor(new Color(
    Math.max(0,bg.getRed()+borderchange),
    Math.max(bg.getGreen()+borderchange,0),
    Math.max(bg.getBlue()+borderchange,0)));
    g.fillRect(0,0,getWidth(),getHeight());
    g.setColor(getBackground());
    int border = 4;
    g.fillRect(border,border,getWidth()-border,getHeight()-border);
    g.setColor(Color.BLACK);
    g.setFont(getFont());
    g.drawString(getText(),getWidth()/2,getHeight()/2);
    }
    };

    最佳答案

  • Creating a look and feel for my buttons?


  • 外观和感觉类似于主题,
  • 默认情况下,此 ColorScheme 具有一、二、三种颜色,此主题适用于所有 Swing JComponent,
  • 那么所有 Swing JComponents 都有相同的颜色,ColorScheme
  • 不是您要找的东西
  • Completely overriding the paintComponenet method in my JButtons(But that's a pretty pathetic way to do it... and the border + text isn't drawn when I override that... obviously a bad idea)


  • JButton 有一组颜色
  • 您可以覆盖paintComponent,填充整个区域,使用一种颜色的矩形(不是您要寻找的东西)或使用GradientPaint
  • 您可以覆盖 BasicButtonUI
  • 覆盖 UIManager and put there arrays of Colors 中的正确键
  • Using button.setContentAreaFilled(false);, and putting a JPanel of the same size as the button behind the button.


  • 这可能是最简单的方法,准备图标(或下载图标集)
  • 使用正确的方法,实现(鼠标和键和键绑定(bind))事件
  • in the JButton API
  • override ButtonModel (by using ChangeListener)
  • 关于java - JButton 背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043218/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com