标签: jbutton

测试是否按下了javax.swing.JButton

我想检查某个javax.swing.JButton(常规按钮)是否被按下(在它被释放之前).是否有任何选项可以检查按钮是否已关闭?

最简单的解决方案是添加一个MouseListener响应鼠标单击和释放事件的解决方案.但是,这并不包括通过Enter键或任何其他方式激活按钮的情况.我不想通过键盘或其他方式禁用激活鼠标 - 我只想知道何时按下它而不限制它的行为.

我尝试了所有不同的事件,只有两个响应按下按钮的是ActionPreformed(ActionEvent)和StateChanged(ChangedEvent)事件.ActionPreformed每次点击执行一次,这意味着只有在按下并释放按钮后才会执行,所以这并不好.当我点击一个按钮时,StateChanged确实被调用了几次,而当我发布它时,它被调试了好几次.但是,事件对象仅包含有关源窗口小部件(按钮)的信息,并且不包含有关状态更改本身的信息.这可以防止我们想要捕获哪些事件.

提前致谢!

java swing state pressed jbutton

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

如何更改JButton?

我希望JButton看起来像HTML中的链接.它仍然是一个按钮,当我点击它时它会打开一些新的JFrame.但我想改变它的样子.我试过这个:

JButton button = new JButton();
button.setText("hi");
button.setContentAreaFilled(false);
button.setBorderPainted(false);
button.setOpaque(false);
button.setBackground(Color.WHITE);
button.setCursor(Cursor.getPredefinedCursor(12)); 
Run Code Online (Sandbox Code Playgroud)

但是我的按钮文本周围仍然有一些边框.我们如何完全删除边框?

java swing jbutton

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

删除特定按钮

我在JFrame中有一个包含5个按钮的JPanel.在另一个JPanel中有一个名为"删除按钮"的按钮,我想要做的是单击此按钮,然后通过ckicking其中一个来选择要删除的其他5个按钮.谁能帮我?

    public class gui extends JFrame implements ActionListener
    {
      JPanel p1 = new JPanel();
      JPanel p2 = new JPanel();
      JPanel p2 = new JPanel();

      JButton b1 = new JButton("Delete");
      JButton b2 = new JButton("A");
      JButton b3 = new JButton("B");
      JButton b4 = new JButton("C");

      gui()
      {
        p1.setLayout(new GridLayout(1,2));
        p1.add(p2);
        p1.add(p3);

        p2.setLayout(new GridLayout(3,1));
        p2.add(b2);
        p2.add(b3);
        p2.add(b4);
        p3.add(b1);

        b1.addActionListener(this);
        b2.addActionListener(this);
        b3.addActionListener(this);
        b4.addActionListener(this);

      }

     public void actionPerformed(ActionEvent e)
     {
       if (e.getSource() == b1)
         // When I click this button I want to be …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jbutton actionlistener

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

Swing:启用延迟按钮

private void OptionsActionPerformed(java.awt.event.ActionEvent evt) 
{ 
 // After clicking on button X, I want 4 other buttons to show up
 // in a sequential order

ButtonTrue(); 
} 


public void ButtonTrue() 
{
    Audio_Options.setVisible(true);
    letsSleep();
    Control_Options.setVisible(true);
    letsSleep();
    Display_Options.setVisible(true);
    letsSleep();
    Network_Options.setVisible(true);
}

 public void letsSleep()
{
    try {
        Thread.sleep(10000);
    } catch (InterruptedException ex) {
        Logger.getLogger(MainMenu.class.getName()).log(Level.SEVERE, null, ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

我有4个按钮.我希望它们按顺序出现,例如:Button1 - 10seconds - Button2 - 10秒 - Button3 - 10seconds - Button 4

问题:每当我调用函数"ButtonTrue()"时,它们都会在等待30秒后一起出现.什么可能导致这个问题发生?

java swing delay jbutton

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

当点击JAVA Jbutton时,有人可以帮我添加文字吗?

基本上,它给我一个问题,即在"for"循环中将每个按钮声明为最终,然后再添加文本.当我这样做时,它给了我很多其他错误.有人可以帮我解决这个问题吗?

import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;

public class tictactoe {
    public static final int FRAME_WIDTH = 700;
    public static final int FRAME_HEIGHT = 200;
    public static void main(String[] args)          
    {
        int slots = 9;
        JButton[] gameButton = new JButton[9];

        JPanel ticTacToeBoard = new JPanel();
        ticTacToeBoard.setLayout(new GridLayout(3, 3));
        for (int i = 0; i < slots; i++)
        {

                gameButton[i] = new JButton();
                ticTacToeBoard.add(gameButton[i]);

                gameButton[i].addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                gameButton[i].setText("x");
            }
            });
        }



        JButton clearButtons …
Run Code Online (Sandbox Code Playgroud)

java arrays swing jframe jbutton

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

JPanels中的JButtons,填满了整个面板

我一直在努力为插入到具有GridLayout的JPanel中的按钮设置特定大小.

按钮总是填满整个面板,而如果我删除gridlayout,按钮将不会有相同的行为.

任何提示?

package panels;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class ColorDisplay {

private final int X = 100; 
private final int Y = 100;
private final Dimension PANEL_SIZE = new Dimension(500,500);
private JTextField textRed;
private JTextField textGreen;
private JTextField textBlue;
private JLabel labelText, labelRed, labelGreen, labelBlue;
private JPanel displayPanel;
private JPanel textPanel;
private JPanel buttonPanel;
private JButton …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jbutton layout-manager

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

如何将两个JButton对齐以进行右对齐?

所以目前我的程序只显示GUI右下角的一个按钮.但我想在右下角显示两个按钮.任何想法如何将两个按钮设置到右上角?到目前为止,这是我的代码:

import javax.swing.*;

import java.awt.*;

public class Other extends JFrame{
        private static final long serialVersionUID = 1L;
        public Other() {
            super("Buttons");
            final Container mainPanel = getContentPane();
            mainPanel.setLayout(new BorderLayout());
            JPanel buttonPanel = new JPanel();
            buttonPanel.setLayout(new BorderLayout());
            JPanel inputPanel = new JPanel();
            inputPanel.add(new JLabel("RANDOM TEXT HERE"));
            inputPanel.add(new JLabel("RANDOM TEXT HERE"));
            inputPanel.add(new JLabel("RANDOM TEXT HERE"));
            JButton s = new JButton("first");
            JButton l = new JButton("second");
            buttonPanel.add(s,BorderLayout.LINE_END);
            buttonPanel.add(l,BorderLayout.LINE_END); //<-- not working
            mainPanel.add(inputPanel,BorderLayout.PAGE_START);
            mainPanel.add(buttonPanel,BorderLayout.PAGE_END);
            pack();
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLocationRelativeTo(null);
            setVisible(true);
        }
   public static void main(String[] …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton layout-manager

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

如何在JTextField上输入时对JButton执行操作?

我有一个JTextField和一个JButton,当用户点击进入时JTextField,必须对相应的动作执行JButton.这是我的代码片段.

此外,我想禁用JButton输入并在以后更改某些内容时启用它JTextField

JButton jb=new JButton("Print");
JTextField jt=new JTextField(20);
jb.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae)
   {
     System.out.println(jt.getText());
   }
});
Run Code Online (Sandbox Code Playgroud)

java swing jbutton actionlistener jtextfield

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

如何一个接一个地垂直放置JButton?

我用a CardLayout来创建2个面板.左侧主机上的JButtons那个,单击时,会在右侧面板中打开相应的网站.问题是我无法将按钮放在另一个上面.

请注意以下截图: -

屏幕截图

java swing jbutton layout-manager

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

为什么我在Swing的JButton中的html代码偏离中心?

我的Swing JButton代码如下所示:

  Insets An_Inset=new Insets(0,0,0,0);
  String Content="<Html>"+
                         "  <Table Border=1 Cellspacing=0 Cellpadding=2 Width=48>"+
                         "    <Tr><Td Align=Center BgColor=Blue><Font Size=3> + </Font></Td><Td Align=Center><Font Size=3> + </Font></Td></Tr>"+
                         "    <Tr><Td Align=Center><Font Size=3> + </Font></Td><Td Align=Center><Font Size=3> + </Font></Td></Tr>"+
                         "  </Table>"+
                         "</Html>";
  JButton aButton=new JButton(Content);
  aButton.setFont(new Font(Monospaced,0,16));
  aButton.setPreferredSize(new Dimension(56,56));
  aButton.setEnabled(false);
  aButton.setMargin(An_Inset);
  aButton.setHorizontalAlignment(SwingConstants.CENTER);
Run Code Online (Sandbox Code Playgroud)

但是"+"标记偏离中心,如何解决?

在此输入图像描述

html java swing jbutton centering

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