标签: jbutton

改变JButton背景的最佳方法

现在我通过使用改变按钮的背景颜色

button.setBackground(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)

这是一个例子.

但是当我有一个巨大的网格jbuttons(1000+)时,只需运行for循环来改变每个按钮的背景是非常非常慢的.你可以看到网格慢慢变白,一帧一帧.我真的不想要这个

有没有更好的方法将网格上的每个JButton同时更改为相同的颜色?

这就是我制作网格的方式,所使用的数字仅仅是例如......

grid = new JPanel(new GridLayout(64, 64, 0, 0));
Run Code Online (Sandbox Code Playgroud)

这是4096个按钮,将每个按钮更改为相同颜色需要大约30秒以上.

编辑1:我需要按钮是可点击的,就像当我点击一个按钮时,它变为蓝色.单击所有按钮时,将每个按钮的颜色更改为白色.现在我的工作正常,但改变每个按钮的颜色只是很慢.

编辑2:这就是我改变按钮的方式:

    new javax.swing.Timer(300, new ActionListener() {
        int counter = 0;
        public void actionPerformed(ActionEvent e) {
            if (counter >= counterMax) {
                ((Timer) e.getSource()).stop();
            }
            Color bckgrndColor = (counter % 2 == 0) ? flashColor : Color.white;
            for (JButton button : gridButton) {
                button.setBackground(bckgrndColor);
            }
            counter++;
        }
    }).start();
Run Code Online (Sandbox Code Playgroud)

java swing jbutton background-color

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

DNA到RNA转换Java Swing:为什么我的JButton不工作?

我正在开发一个简单的工具,用户输入他们的字符串或RNA或DNA,然后点击一个按钮然后转录它.当我点击我的转录或反转录JButton时没有任何反应!请帮忙!任何方向,提示或帮助都会很棒!谢谢!这是我的代码:

import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.TextArea;
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.JPanel;
import java.awt.event.*;

public class TranslationGUI extends javax.swing.JFrame implements ActionListener
{
    public static final int WIDTH = 1500;
    public static final int HEIGHT = 500;

    TextArea DNATextArea, RNATextArea, proteinTextArea;
    JButton transcribe, translate, reverseTranscribe;
    String DNA;
    String RNA;

/** Creates new form TranslationGUI */
public TranslationGUI() 
{
    super("Transcription and Translation Tool");
    setSize(WIDTH, HEIGHT);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton

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

Java多按钮动作

我需要开发一个带有GUI的Java应用程序,它代表一台ATM机器.为此,我必须从"键盘"(9个按钮)中读取帐号和PIN.我必须读取按下的每个按钮的每个动作(动作监听器返回按钮的值),并将其数字连接到一个字符串,当按下"ok"按钮时它应该返回int(Integer.parseInt()).我的问题是如何"等待\停止\冻结"我的程序,直到引入数字并按下"确定"?

如果这个问题有点令人困惑,我很抱歉

谢谢你的帮助 ;)

PS我为ATM机的每个部分都有一个班级.EG:键盘,屏幕,ATM等.

PSS如果你想看一些代码,请告诉;)

java user-interface swing jbutton

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

按下按钮后,Java Key Event将不会执行

嗨希望有人可以告诉我我的关键事件我做错了什么.

我使用卡片布局来浏览我的两个JPanels atm.为此,我使用了Action Events和Key Events.当按下按钮时,动作事件将在JPanel之间切换,而当按下按键时,按键事件将隐藏按钮.所有关键事件都很好,它做我想要的(在其中一个面板上调用一个方法来设置放在其中的按钮的边界eq:button.setBounds(-1,-1,150,40);但是当我按下任何按钮,按键事件不响应,尽管我按下的按钮上没有任何事件.下面是我的代码,为简单起见,我删除了面板的非相关部分,就像它们要做的那样.

在此先感谢,如果我需要提供更多线索或更多地编辑代码,请告诉我,我会尽力使代码更清晰.

public class PanelContainer extends JPanel implements ActionListener, KeyListener{
    GamePanel game = new GamePanel();
    MainMenuPanel mainMenu = new MainMenuPanel();
    CardLayout cards = new CardLayout();
    public PanelContainer(){
        setLayout(cards);
        this.setFocusable(true);
        this.addKeyListener(this);
        mainMenu.newGameButton.addActionListener(this);
        add(mainMenu, "Card1");
        add(game, "Card2");
    }
    @Override
    public void actionPerformed(ActionEvent aevt){
        cards.show(this, "Card2");
        game.action();
    }
    @Override
    public void keyTyped(KeyEvent kevt){

    }
    @Override
    public void keyPressed(KeyEvent kevt){

    }
    @Override
    public void keyReleased(KeyEvent kevt){
        if(kevt.getKeyCode() == KeyEvent.VK_ESCAPE || kevt.getKeyChar() == 'O' ||    kevt.getKeyChar() == 'o'){
            game.shw(); //shw() is …
Run Code Online (Sandbox Code Playgroud)

java swing focus keyevent jbutton

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

Java - 在Jtable的单元格中添加一个按钮

我需要在Jtable的单元格中添加一个按钮来执行某些操作.我搜索了很多方法但没有使用Netbeans.我希望你的帮助,因为我也为社区做出贡献.提前致谢.!!

VL

java swing netbeans jtable jbutton

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

如何在java中设置数组中JButtons的颜色?

假设有一个名称按钮数组:
private JButton buttons [] = new JButton [9];
如何将此阵列中所有按钮的颜色设置为蓝色?

这是我的整个代码:这是一个使用按钮的Tic Tac Toe游戏.

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

public class TicTacToe implements ActionListener {
private JButton buttons[] = new JButton[9];
private JFrame window = new JFrame("Tic Tac Toe");
private boolean win = false;
private int count = 0;
private int Xwins = 0, Owins = 0;
private String letter = "";
private int[][] winCombinations = new int[][] {
        {0, 1, 2}, {3, 4, 5}, {6, 7, 8}, …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton background-color

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

打包包含图像的程序

我有大量问题打包我的java程序,其中包含图像到jar转换为可执行文件.图像已用于程序和按钮的背景中.请参阅下图,其中显示了我希望转换为jar的程序.

图片

在此输入图像描述

如您所见,程序运行正常.我创建了相同的程序,没有自定义背景和自定义按钮,不包含图像,我成功将其打包到一个jar中,然后打包成.exe文件.

关于绘制我的背景,我这样做如下:

public void paintComponent(Graphics g) {
    Image img = new ImageIcon("imgs/Bgnd1.jpg").getImage();
    Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
    setPreferredSize(size);
    setMinimumSize(size);
    setMaximumSize(size);
    setSize(size);
    setLayout(null);
    g.drawImage(img, 0, 0, null);
} 
Run Code Online (Sandbox Code Playgroud)

关于使用图像创建我的4个自定义按钮,我正在执行以下操作:

// Prepare rollover images
ImageIcon F1 = new ImageIcon("imgs/btn_f1_not_selected.jpg");
ImageIcon F1rollOver = new ImageIcon("imgs/btn_f1_selected.jpg");

// Create F1 button
final JButton btnF1 = new JButton(F1);
//btnF1.setOpaque(false);
btnF1.setContentAreaFilled(false);
btnF1.setBorder(null);
btnF1.setBorderPainted(false);
btnF1.setFocusPainted(false);
btnF1.setRolloverIcon(F1rollOver);
Run Code Online (Sandbox Code Playgroud)

我尝试将图像放在bin文件夹中,并且为了创建背景,我改变了上述关于图像的声明/获取的方法.

public void paintComponent(Graphics g) {
        String path = "Bgnd11.jpg";
        java.net.URL imgURL = getClass().getResource(path);     
        Image img = new ImageIcon(imgURL).getImage(); …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton embedded-resource imageicon

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

我编写了这段代码,它给出了NullPointerException

import java.awt.*;
import java.awt.event.*;

public class sample2 extends Frame
    {
    Button b[];
    public sample2()
        {
        super("trying");
        b=new Button[10];
        setLayout(new FlowLayout());
        for(int i=0;i<10;i++)
            add(b[i]);
        }
    public static void main(String args[])
        {
        sample2 obj=new sample2();
        obj.setSize(500,100);
        obj.setVisible(true);
        }
    }
Run Code Online (Sandbox Code Playgroud)

例外情况如下

Exception in thread "main" java.lang.NullPointerException 
at java.awt.Container.addImpl(Container.java:1037) 
at java.awt.Container.add(Container.java:373) 
at sample2.<init>(sample2.java:13) 
at sample2.main(sample2.java:17) 
Run Code Online (Sandbox Code Playgroud)

java awt nullpointerexception jbutton shadowing

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

如何根据JButton的大小更改字体大小?

我有一个java应用程序 - 一个计算器.我想通过调整应用程序窗口的大小来动态调整按钮的字体大小.怎么实现呢?

我的想法是使用ComponentEvents.我有应用程序窗口的初始大小和初始字体的大小.我想根据按钮的大小更改字体大小,受窗口大小更改的影响.问题是如何在overriden方法中使用[初始窗口大小]/[初始字体大小]的比例?每种字体的比例都不同.

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

public class Main extends JFrame {
    public Main() {
        super("Test");

        JPanel cPane = (JPanel) getContentPane();
        cPane.setLayout(new BorderLayout());
        MyButton sampleButton = new MyButton("Sample text");
        sampleButton.setFont(new Font("Sans Serif", Font.PLAIN, 20));

        MyButton a, b, c, d;
        a = new MyButton("a");
        b = new MyButton("b");
        c = new MyButton("c");
        d = new MyButton("d");




        cPane.add(a, BorderLayout.PAGE_START);
        cPane.add(b, BorderLayout.PAGE_END);
        cPane.add(c, BorderLayout.LINE_START);
        cPane.add(d, BorderLayout.LINE_END);

        cPane.add(sampleButton, BorderLayout.CENTER);
        setSize(300, 200);
        setResizable(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void …
Run Code Online (Sandbox Code Playgroud)

java fonts swing jbutton

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

如何用ImageIcon完全填充JButton的表面?

我尝试用ImageIcon完全填充Jbutton的“表面”。到目前为止,我的结果是:

在此处输入图片说明

如您所见,“退出”标签的边缘与按钮的边缘之间仍然存在一些空间。您可以在背景上看到带有白色蓝色填充的按钮。我想要的是用标签完全覆盖此按钮。

有没有办法做到这一点?

这是我的代码:

    package footballQuestioner;

import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;



public class Beiexamples {

    public static void main(String[] args) {

        JFrame frame = new MyFrame();

    }

}

class MyFrame extends JFrame {

        BufferedImage image;
        JLabel label;

    public MyFrame() {

        setLayout(new …
Run Code Online (Sandbox Code Playgroud)

java swing label bufferedimage jbutton

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