标签: jbutton

在悬停/点击时使JButton变暗

ImageIcon backpackImageIcon = new ImageIcon("images/gui/button_backpack.png");
JButton backpackButton = new JButton();
backpackButton.setBounds(660,686,33,33);
backpackButton.setBorderPainted(false);
backpackButton.setFocusPainted(false);
backpackButton.setVisible(true);
backpackButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("B"), "backpackButtonPress");
backpackButton.getActionMap().put("backpackButtonPress", ClassBackpackButton);
backpackButton.setAction(ClassBackpackButton);
backpackButton.setIcon(backpackImageIcon);
backpackButton.setToolTipText("Backpack[B]");
panel.add(backpackButton);      
Run Code Online (Sandbox Code Playgroud)

我有多个按钮设置这个确切的方式.我希望能够做的是让它们在悬停时变暗10%,在点击时变暗20%.我试着四处寻找如何做到这一点,但没有运气(只找到javascript的东西).对不起,如果之前已经询问过这个问题并感谢您的帮助.

**编辑**

我试过这样做,但它只是将图像变成空白:

BufferedImage bufferedImage = null;
try {
    bufferedImage = ImageIO.read(new File("images/gui/button_backpack.png"));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
BufferedImage darkerBackpackBufferedImage = new BufferedImage(32, 32, BufferedImage.TYPE_BYTE_INDEXED);
RescaleOp op = new RescaleOp(1.3f, 0, null);
darkerBackpackBufferedImage = op.filter(bufferedImage, null);
ImageIcon darkerBackpackImageIcon = new ImageIcon((Image) darkerBackpackBufferedImage);
backpackButton.setRolloverIcon((ImageIcon) darkerBackpackImageIcon);
Run Code Online (Sandbox Code Playgroud)

**编辑**与解决方案

这是修改后的shiftColor函数,我跟上面读过这个的人一起去...祝你好运:)

public …
Run Code Online (Sandbox Code Playgroud)

java swing mouseover jbutton imageicon

0
推荐指数
1
解决办法
3060
查看次数

java重绘阻止了jbutton

在我的paintComponent()方法中,我有一个绘制jpanel背景的drawRect().但由于在调用paintComponent()方法之前在屏幕上绘制了jbutton,因此drawRect会阻止jbutton.有谁知道如何解决这一问题?我的猜测是在重新调用之前添加jbutton,但我不知道该怎么做?

一些代码:

public Frame(){
  add(new JButton());
}

public void paintComponent(Graphics g){
  super.paintComponent(g);
  g.drawRect(0,0,screenwidth,screenheight); //paints the background with a color 
                                            //but blocks out the jbutton.
}
Run Code Online (Sandbox Code Playgroud)

java graphics swing jcomponent jbutton

0
推荐指数
2
解决办法
978
查看次数

JButton添加对象

有没有办法将对象添加到JButton?我知道我几年前在C#中做过它,但是它是用Java工作的吗?

public Shop(Item[] buyables) {

    ArrayList<JButton> buttons = new ArrayList<JButton>();

    for(int i = 0; i < buyables.length; i++) {
        Item item = buyables[i];
        JButton button = new JButton();
        button.setText(item.getName());
        // button.addExtra(item);
        buttons.add(button);
    }

}
Run Code Online (Sandbox Code Playgroud)

所以每个按钮都引用一个对象或者保存一个对象,所以如果单击按钮,我就可以使用它所拥有的对象.

java swing awt jbutton

0
推荐指数
1
解决办法
1647
查看次数

Java自动设置按钮名称

我是Java摇摆新手,我有一个问题.我为循环创建按钮,现在我想自动给它们命名或某种标记以供将来识别(我需要点击按钮的名称使其成为变量).

我怎样才能在循环中给出它们的名字?谢谢.

这是我的for循环的代码:

     for (int aa=1; aa<65; aa++) 
                {
                    JButton button = new SquareButton("");
                    gui.add(button); 
                    button.addActionListener((ActionListener) button);

                }    
Run Code Online (Sandbox Code Playgroud)

java swing jbutton

0
推荐指数
1
解决办法
125
查看次数

Java摆动JButton的顺序和大小

我正在尝试用java swing创建一个棋盘游戏,但我对布局感到非常困惑.目前我正在尝试创建用户看到的图像.为了做到这一点,我使用了BorderLayout(我只需要使用Border-grid-flow布局),我认为我会在东南西北部放置一些工作人员,并在中心放置基本板.问题是我必须创建使用JButton移动棋子的路径(其余空间应该留空)并且该路径需要具有特定的十字形状:http://i59.tinypic.com/eileys.png和尺寸应该比平常小.对于初学者,我尝试使用带有gridlayout的JPanel(放入中心),但无论我做什么(如setPreferredSize()),按钮都会调整大小以填充空间.这是我的代码.感谢您的时间,任何提示都会有所帮助!编辑:

package projtest1;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Board extends JFrame
{
    public Board()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Border Layout");
        setMinimumSize(new Dimension(1280, 768));
        setSize(1280, 768);  
        JPanel contentPane = new JPanel();
        contentPane.setLayout(new BorderLayout());
        contentPane.add(new JButton("North"), BorderLayout.NORTH);
        contentPane.add(new JButton("South"), BorderLayout.SOUTH);
        contentPane.add(new JButton("West"), BorderLayout.WEST);
        contentPane.add(new JButton("East"), BorderLayout.EAST);
        JPanel buttonPanel = new JPanel();
        buttonPanel.setLayout(new GridLayout(3, 1, 1, 1));
        buttonPanel.setSize(new Dimension (800,800));
        JPanel topButtonPanel = new JPanel();
        JPanel middleButtonPanel …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton layout-manager

0
推荐指数
1
解决办法
1054
查看次数

如何使Jbutton周围的边框更厚?

我正在构建的GUI界面上有以下JButton.

http://i.imgur.com/MucqvGj.png

我想让按钮周围的边框更厚,这样它就会从背景中脱颖而出.是否可以在Java中执行此操作?

java swing jbutton

0
推荐指数
1
解决办法
3732
查看次数

在多个JFrame之间切换

我是Java的新手,我正在尝试进行某种测验.我创建了3个JFrame,都在同一个包中.在我的主框架上,有两个按钮(一个用于英文版,另一个用于德文版).我想按下这些按钮后切换JFrames(这样我就可以按"英语",查看我的英语测验框架并与之互动).抬起头来对我没什么帮助,因为我对它并不是很有经验.甚至可以像这样做吗?如果没有,我怎么能这样做?

java jframe jbutton

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

单击按钮时如何更改背景颜色

我的问题只是改变颜色的一小部分.当我点击那些按钮时,我想改变整个背景.我已经在谷歌搜索没有任何反应.

我使用面板,但它似乎不仅仅是一个小部分,它可以改变我想要一个完整的背景.

import java.awt.event.MouseListener;
import javax.swing.JOptionPane;
import java.awt.event.*;
/**
 *
 * 
 * @author Christopher Porras
 * @Version 0.1
 * @Doing GUI
 */
public class Button extends JFrame {

   private JButton bred;
   private JButton bblue;
   private JButton bgreen;
   private JPanel mousepanel; 


    public Button()
    {
        super("ChangeColor");
        setLayout(new FlowLayout());
        setSize(200,200);

        mousepanel = new JPanel();
        mousepanel.setBackground(Color.white);
        add(mousepanel);

        bred = new JButton("REd");
        add(bred);

        bblue = new JButton("Blue");
        add(bblue);

        bgreen = new JButton("Green");
        add(bgreen);

        thehandler handler = new thehandler();
        bred.addMouseListener(handler);
        bblue.addMouseListener(handler);
        bgreen.addMouseListener(handler);
    }

    private class thehandler …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jframe jbutton

0
推荐指数
1
解决办法
8258
查看次数

如何将选定索引设置为来自另一个类的组合框的0

当我按下按钮时,我尝试测试是否可以更改组合框选择的索引,但是如果我的组合框从另一个类添加到我的框架中,它对我来说什么都没有用,请你告诉我一下我想 ?

我创建组合框的类是:

package MyPackage;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;

public class AddMyBox {

    private JComboBox combobox;
    String[] array = {"Select", "1", "2", "3"};

    public JComboBox theBox() {
        combobox = new JComboBox();
        combobox.setModel(new DefaultComboBoxModel(array));
        combobox.setBounds(10, 11, 414, 20);
        return combobox;
    }

}
Run Code Online (Sandbox Code Playgroud)

以及创建框架的类和添加组件的位置:

package MyPackage;

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

public class MyFrame extends JFrame {

    public MyFrame() {
        getContentPane().setLayout(null);
        setVisible(true);

        // adding the comboBox from class AddMyBox
        AddMyBox getBox = new AddMyBox();
        getContentPane().add(getBox.theBox());

        JButton btnNewButton = new JButton("New button"); …
Run Code Online (Sandbox Code Playgroud)

java swing selectedindex jbutton jcombobox

0
推荐指数
1
解决办法
569
查看次数

按下按钮运行线程

我有一个带有以下按钮的GUI.当它被按下时,它应该运行一个新线程(我有一个实现Runnable的类).但是,当我这样做时,GUI会冻结.我做错了什么,如何解决?

        //button
        addKitchenStaff.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) {
                //create object of a class which implements runnable
                KitchenStaff kitchenStaff = new KitchenStaff(allDishes, ingredientsModel, dishesModel,communication.getBap());
                //arraylist of all such objects
                allKitchenStaff.add(kitchenStaff);

                Thread thread = new Thread(kitchenStaff);
                thread.run();
            }
        });
Run Code Online (Sandbox Code Playgroud)

java swing multithreading thread-safety jbutton

0
推荐指数
1
解决办法
834
查看次数