标签: jbutton

如何获得JButton的默认背景颜色?

我用这个myButton.setBackground(myColor)来改变JButton背景颜色到我的颜色,如何找到它的原始默认背景颜色,以便我可以改回来?我知道在更改和使用它之前我可以保存它的默认背景颜色,但是我想知道Java是否将它存储在某处,以便我可以调用类似的东西:myButton.getClass.getDefaultBackground()将它取回?

background default colors jbutton

7
推荐指数
3
解决办法
3万
查看次数

使JButton不可见但可点击?

如何在java中创建一个JButton,不可见但可点击?

button.setVisible(false); 
Run Code Online (Sandbox Code Playgroud)

使按钮不可见,但不可点击,是否有任何方法使其不可见,但可点击?

我试过做:

button.setVisible(false);
button.setEnabled(true);
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.我想这样做是因为我想要一个带图像的按钮,如果我将不可见的JButton放在图像上,按钮会在你点击图像时响应,或者是隐形按钮.

java swing invisible jbutton clickable

7
推荐指数
1
解决办法
3万
查看次数

从包含透明像素的图像创建自定义JButton

阅读编辑2,了解我实际上缺少的内容

我目前正在尝试使用在photoshop中创建的具有alpha参数的图像创建一些自定义JButton.

到目前为止,覆盖paint()方法来绘制图像已经起到了绘制按钮以显示正确图像的意义.不过,我想通过使其形状(可点击区域)与图像上的可见像素相同来改进它(现在,如果我绘制按钮的边框,它就是一个正方形).

有没有一种简单的方法可以做到这一点,还是我必须解析图像并找到alpha像素来制作自定义边框?

我必须覆盖哪些方法才能使其按照我想要的方式工作?

另外,我将在稍后提出的另一个问题是:使用某种算法来更改图像的颜色会更好,这样看起来当人们点击它时它被点击或者我最好创建第二个按钮处于活动状态时图像和绘图?

编辑:我刚刚读到一些其他问题,我应该重新定义paintComponent()而不是paint(),我想知道为什么重新定义paint()工作正常?

编辑2:我改变了一切,以确保我的JButton是使用带图标的默认构造函数创建的.我要做的是获取点击注册位置的X和Y位置并抓住该位置的图标像素并检查其alpha通道以查看它是否为0(如果是,则不执行任何操作,否则执行此操作应该采取的行动).

问题是,alpha通道始终返回255(蓝色,红色和绿色在透明像素上为238).在其他像素上,一切都返回它应该返回的值.

这是一个示例(如果需要,可以使用另一个图像尝试)重新创建我的问题:

public class TestAlphaPixels extends JFrame
{
  private final File FILECLOSEBUTTON = new File("img\\boutonrondX.png");  //My round button with transparent corners
  private JButton closeButton = new JButton(); //Creating it empty to be able to place it and resize the image after the button size is known


  public TestAlphaPixels() throws IOException
  {
    setLayout(null);
    setSize(150, 150);

    closeButton.setSize(100, 100);
    closeButton.setContentAreaFilled(false);
    closeButton.setBorderPainted(false);

    add(closeButton);

    closeButton.addMouseListener(new MouseListener()
      {

        public void mouseClicked(MouseEvent e)
        {
        }

        public void …
Run Code Online (Sandbox Code Playgroud)

java icons swing jbutton imageicon

7
推荐指数
2
解决办法
1万
查看次数

JDialog的动作监听器,用于单击按钮

我有主要的应用程序在哪里是值与表.然后,我点击"添加"按钮,新的CUSTOM(我自己制作)JDialog类型弹出窗口出现.在那里我可以输入值,做一些滴答并点击"确认".所以我需要从对话框中读取该输入,因此我可以将此值添加到主应用程序中的表中.当按下"确认"按钮时我该怎么听,所以我可以在那之后读取该值?

addISDialog = new AddISDialog();
addISDialog.setVisible(true);
addISDialog.setLocationRelativeTo(null);
//somekind of listener...
//after "Confirm" button in dialog was pressed, get value
value = addISDialog.ISName;
Run Code Online (Sandbox Code Playgroud)

java swing jdialog jbutton actionlistener

7
推荐指数
1
解决办法
4万
查看次数

单击后重命名按钮 - Java JButton

当我点击它时,我正试图将我的按钮从"开始"更改为"停止".我尝试这样做是在下面,我查了一下并试图复制指南,但我看不出我做错了什么.我可能会遗漏一些"}",因为我遗漏了许多不相关的代码.有人能看出我做错了吗?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class PipeGameApp extends JFrame implements ActionListener {

    private static int BOARD_SIZE = 11;
    private PipeGame game;      // The model
    private PipeGameView view;      // The view

    // This constructor builds the window
    public PipeGameApp(String title) {
        super(title);

        game = new PipeGame(BOARD_SIZE);
        view = new PipeGameView(game);

        //THE TOP BAR
        JPanel topBar = new JPanel();
        JButton startButton = new JButton("Start");
        startButton.addActionListener(this);



        ButtonGroup bg1 = new ButtonGroup();
        JRadioButton rb1 = new JRadioButton("2 minutes", true); …
Run Code Online (Sandbox Code Playgroud)

java swing jframe jbutton actionlistener

7
推荐指数
1
解决办法
1万
查看次数

Java JButton只有图像?

我将我的按钮图标设置为我在photoshop中制作的.png,但不仅仅是图像可见,还有按钮边框或者您想要调用的内容.

在此输入图像描述

我希望按钮只是:

在此输入图像描述

java swing jbutton

7
推荐指数
1
解决办法
4860
查看次数

删除GridBagLayout中按钮周围的空间

我写了这个令人烦恼的来源,以展示另一个问题中提到的游戏画面的布局.它将按钮(或标签,可在启动时选择)放入GridBagLayout.

如果您在提示时选择不使用按钮(在GUI出现之前),整个GUI都很好而且紧凑,没有间隙.但如果你选择使用按钮,它(如果你的设置就像我的那样)看起来像这样......

在此输入图像描述

注意红色水平线.这是面板显示的BG颜色.当GUI使用标签时,不会看到这些行.稍微拉伸GUI以查看它甚至没有在每行之后放置一条红线(有九行) - 尽管每行使用按钮(相同的组件).

使用按钮时如何删除额外的垂直空间?

我认为它必须是我在配置按钮或行权重时忘记做的事情,但我无法弄清楚是什么!

import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;

import java.net.URL;
import javax.imageio.ImageIO;

public class SoccerField {

    private JPanel ui = null;
    int[] x = {0, 35, 70, 107, 142, 177, 212, 247, 282, 315};
    int[] y = {0, 45, 85, 140, 180, 225, 265, 280, 320, 345};
    boolean buttons;

    SoccerField() {
        initUI();
    }

    public void initUI() {
        int result = JOptionPane.showConfirmDialog(ui, "Use buttons?");
        buttons = result == JOptionPane.OK_OPTION;
        if (ui != …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton layout-manager gridbaglayout

7
推荐指数
1
解决办法
223
查看次数

Java App - 添加,删除,重新排序JButton的元素

我正在开发一个Java应用程序.

我用MockupScreens创建了这个界面.请看这些照片.

在此输入图像描述

在此输入图像描述

第一次,只有一个元素,用户必须输入信息(标题和描述),然后他开始按需要添加元素.他可以随时编辑元素信息.他也可以删除或更改这些元素的顺序......

如何创建像图片一样的东西?????

提前致谢.最好的祝福,

阿里.

我在Java Swing中了解这些部分.我的问题是如何动态插入这个按钮块. 在此输入图像描述

我明白了,我必须把JButton放在JPanel上,然后通过添加,删除和重新排序来操作JPanel ......所以Grid Layout将有效地在每个面板之后添加每个面板,但是考虑重新排序顺序会很困难...

请给我任何建议.:)


搜索后,我得到一个想法:

在此输入图像描述

让我们将这些JButton放在一个名为btnsUnit的JPanel中,然后通过添加,删除和重新排序来操作它......所以GridLayout可以高效地在每个JPanel之后添加每个JPanel.

这就是为什么我创建了一个新的JPanel,它将包含一个未知数量的ListbtnsUnit JPanel,我将10固定为最大数字.

当你回复我时,我正在做这些步骤.我没有到达在ListbtnsUnit JPanel中添加btnsUnit JPanel.

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;


public class setupDeviceList extends JFrame {

private JPanel contentPane;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                setupDeviceList frame = new setupDeviceList(); …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jpanel jbutton

6
推荐指数
1
解决办法
1979
查看次数

如何在没有用户单击的情况下单击JButton?

我有一个JButton,当玩家点击它时,它会告诉我的Action Listener单击一个按钮.我想知道的是,有一个命令或某些东西就像玩家点击了按钮一样.

就像Tic Tac Toe一样,我有2个玩家可以互相对战,但我想为电脑玩家和人类玩家添加选项.但由于计算机实际上无法点击按钮,我迷路了.

编辑:它会像gridButton2.click()(按钮名称)一样容易.click();

java swing jbutton actionlistener

6
推荐指数
1
解决办法
6081
查看次数

如何在NetBeans中控制JButton HTML文本的居中?

我试图在JButton上放一行两行文字; 例如

+----------+
|  READER  |
|   STOP   |
+----------+
Run Code Online (Sandbox Code Playgroud)

但是我无法将它集中在按钮上.我去属性编辑器对JButton,并输入<html><center>READER<br>STOP文本属性.这导致两个单词相对于彼此居中,但是它们一起看起来仍然朝向按钮面的右侧移动,如:

+----------+
|    READER|
|     STOP |
+----------+
Run Code Online (Sandbox Code Playgroud)

还有水平和垂直对齐和文本位置属性,我将它们全部设置为CENTER,但这没有任何我能看到的效果.

编辑:这里是一个例子,说明当我<center>完全省略时它是如何布局的,以防任何人对我的描述感到困惑"读者和停止是相互尊重的左对齐,但在按钮上右对齐":

+----------+
|    READER|
|    STOP  |
+----------+
Run Code Online (Sandbox Code Playgroud)

编辑:这是NetBeans生成的代码:

    readerStopButton_.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.light"));
    readerStopButton_.setFont(new java.awt.Font("Geneva", 0, 12)); // NOI18N
    readerStopButton_.setText("<html><center>READER<br>STOP</center></html>\n");
    readerStopButton_.setToolTipText("<html><b>Stop</b> button is currently inactive.  ");
    readerStopButton_.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    readerStopButton_.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            readerStopButton_ActionPerformed(evt);
        }
    });
    operationButtons_.add(readerStopButton_);
Run Code Online (Sandbox Code Playgroud)

编辑:这是按钮对我的看法的屏幕截图.有很多我不知道做布局,所以我很可能省略一些关键信息.但基本上我让NetBeans完成所有工作,除了提供HTML文本.

编辑:打开一个显示所有按钮的替换屏幕截图.请注意,不使用HTML的单词(单字单词)正确对齐,而使用HTML的两个正在搞乱.

更好地看待问题

html java swing jbutton

6
推荐指数
2
解决办法
7595
查看次数