标签: jbutton

Swing - 从面板内部调用事件

我有简单的Swing GUI与主窗口JFrame,其主面板派生自JPanel.该面板有一些按钮,可以单击并生成事件.

我希望这些事件影响存储的数据,JFrame因为它是我的主应用程序 - 它有一些线程,开放流等队列.

那么如何让我的按钮在面板中调用其父框架中的回调?Java/Swing的最佳实践是什么?

java swing jframe jbutton actionlistener

5
推荐指数
1
解决办法
4014
查看次数

如何设置Jbutton的颜色

如何设置JButton的颜色?

我试过这个:

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

但没有成功.这只会改变按钮边框的颜色.然后我试图覆盖paintComponents

public void paintComponent(Graphics g) {
   g.setColor(Color.GREEN);
   g.fillRect(0, 0, getSize().width, getSize().height);
}
Run Code Online (Sandbox Code Playgroud)

但是现在我没有看到JButton上的文字

java swing jbutton

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

Java - 如果之后定义了actionPerformed,则JButton文本将消失

这一直困扰着我.如果我定义之前setText在JButton上定义,文本将消失:setAction

JButton test = new JButton();
test.setText("test");  // Before - disappears!
test.setAction(new AbstractAction() {
    public void actionPerformed(ActionEvent e) {
        // do something
    }
});
this.add(test);
Run Code Online (Sandbox Code Playgroud)

如果它之后,没有问题.

JButton test = new JButton();
test.setAction(new AbstractAction() {
    public void actionPerformed(ActionEvent e) {
        // do something
    }
});
test.setText("test");  // After - no problem!
this.add(test);
Run Code Online (Sandbox Code Playgroud)

此外,如果我在JButton构造函数中设置文本,那很好!Yarghh!

为什么会这样?

java swing text action jbutton

5
推荐指数
1
解决办法
2881
查看次数

Java isRollover()方法在我的swing应用程序中不会产生事件

我正在读一本名为Swing:A Beginner's guide的好书.书中有这样的代码,它创建了一个按钮和一个标签,用于警告按钮的状态变化事件:

//Demonstrate a change listener and the button model

package swingexample2_6;

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

public class ChangeDemo {

    JButton jbtn;
    JLabel jlab;

    public ChangeDemo() {
        //Create a new JFrame container
        JFrame jfrm = new JFrame("Button Change Events");

        //Specify FlowLayout for the layout manager
        jfrm.getContentPane().setLayout(new FlowLayout());

        //Give the frame an initial size
        jfrm.setSize(250, 160);

        //Terminate the program when the user closes the application
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create an empty label
        jlab = new JLabel();

        //Make a button
        jbtn …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton changelistener

5
推荐指数
1
解决办法
701
查看次数

JButton文本和图像图标被删除与省略号

我是一名初学者,正在构建一个带按钮和滚动条的简单窗口.当我编译我的代码时,我的按钮上的文字被删除了一个省略号,图像图标没有显示.我试过在eclipse和NetBeans中编译它.为了解决我试过的问题

.setMargin(new Insets(0, 0, 0, 0));

.setPreferedSize

adding padding (I forgot the code for this)

.setBounds
Run Code Online (Sandbox Code Playgroud)

以及我在互联网上偶然发现的其他一切.这些都没有解决我的问题,我无法查看按钮中的文本和图像.

我的代码:

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

public class FeedBar2 extends JFrame {

    public FeedBar2() {
        super("FeedBar 2");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // create icons
        ImageIcon loadIcon = new ImageIcon("load.gif");
        ImageIcon saveIcon = new ImageIcon("save.gif");
        ImageIcon subscribeIcon = new ImageIcon("subscribe.gif");
        ImageIcon unsubscribeIcon = new ImageIcon("unsubscribe.gif");
        // create buttons
        JButton load = new JButton("Load", loadIcon);
        JButton save = new JButton("Save", saveIcon);
        JButton subscribe = new JButton("Subscribe", subscribeIcon); …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane jbutton layout-manager

5
推荐指数
1
解决办法
2073
查看次数

在JButton上动画GIF,当鼠标悬停时播放它

Icon icon = new ImageIcon(getClass().getResource( "/img/icon.gif" ) );
aButton = new JButton("Its a button", icon);
Run Code Online (Sandbox Code Playgroud)

是否有某种方法可以阻止动画播放?我正在考虑分配gif的静态jpg,然后当我悬停时,分配动画gif,但我不认为有一个事件可以取消鼠标,MouseMotionListener所以我可以加载静态jpg.

按钮中的gif循环,但是,如果我将鼠标悬停在按钮上,它就会消失.

如果我的鼠标光标不在按钮上,如何使gif静态?

如果我使用MouseMotionListener,如果我取下鼠标,它是否会触发事件?

@Override
public void mouseMoved(MouseEvent e) {
//play the gif
//if I take mouse off, call some method to stop playing animated gif
}

@Override
public void mouseDragged(MouseEvent e) {
}
Run Code Online (Sandbox Code Playgroud)

java swing animated-gif jbutton imageicon

5
推荐指数
1
解决办法
5369
查看次数

如何根据JButton的大小自动增加或减少JButton文本的大小?

我试图自动增加/减少JButton文本的字体大小(如果JButton增加/延伸其文本也将增加,如果JButton减少其文本也将减少).JButtons的默认字体是Sans-Serif大小为20,它永远不会减少到20以下(它可以是21,30,40或任何高于或等于20但不低于20的任何东西).我有一个名为MenuJPanel的JPanel,它使用GridLayout添加5个JButton,随着JPanel的增加/减少,这将增加/减少.我选择了GridLayout,因为它似乎是为此目的的最佳布局,我错了吗?我还在MenuJPanel中添加了一个componentResized.下面你可以看到我的代码部分工作.

在此输入图像描述

public class MenuJPanel extends JPanel {

    private JButton resizeBtn1;
    private JButton resizeBtn2;
    private JButton resizeBtn3;
    private JButton resizeBtn4;
    private JButton resizeBtn5;

    public MenuJPanel() {
        initComponents();
      this.addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {

                Font btnFont = resizeBtn1.getFont();
                String btnText = resizeBtn1.getText();

                int stringWidth = resizeBtn1.getFontMetrics(btnFont).stringWidth(btnText);
                int componentWidth = resizeBtn1.getWidth();

                // Find out how much the font can grow in width.
                double widthRatio = (double) componentWidth / (double) stringWidth;

                int newFontSize = (int) (btnFont.getSize() * widthRatio);
                int componentHeight = …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jbutton grid-layout

5
推荐指数
1
解决办法
2417
查看次数

一个用于许多JButton的ActionListener

我想添加ActionListener一组按钮.是否有任何类包裹按钮?喜欢GroupJButtons什么东西或更普遍的东西?所以我可以设置ActionListener所有这些.毕竟我并不关心按哪个按钮我只想更改他的文本所以我需要做的就是将它转换为JButton更改文本.

整个过程会减少1或2中的代码行(如果你使用循环)但我想这样做,因为它听起来逻辑上更好.

java swing jbutton actionlistener

5
推荐指数
1
解决办法
539
查看次数

Java将按钮动态添加为数组

可能重复:
java - 如何在点击时动态地将swing组件添加到gui?

我想动态添加按钮数组.我试过这样的:

this.pack();
    Panel panel = new Panel();
    panel.setLayout(new FlowLayout());
    this.add(panel);
    panel.setVisible(true);
    for (int i = 0; i < Setting.length; i++) {
        for (int j = 0; j < Setting.width; j++) {
            JButton b = new JButton(i+"");
            b.setSize(30, 30);
            b.setLocation(i * 30, j * 30);
            panel.add(b);
            b.setVisible(true);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但没有得到任何东西,我犯了什么错误?

编辑

我有jFrame类"选择",我有一个按钮,当我按下按钮时,这应该发生:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
       structure.Setting s = new Setting(8, 8, 3, 1, 1);
       Game g = new …
Run Code Online (Sandbox Code Playgroud)

java arrays swing jpanel jbutton

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

JButton默认光标

有没有办法设置JButton组件的默认光标?

这是如何设置一个光标JButton:

JButton btn = new JButton("Click me");
btn.setCursor(new Cursor(Cursor.HAND_CURSOR));
Run Code Online (Sandbox Code Playgroud)

根据lookAndFeel Nimbus的默认值,没有像" Button.cursor " 这样的属性.

我想设置一次默认光标,这样当鼠标光标移动时,应用程序中的所有JButton都有相同的手形光标.

java swing jbutton

5
推荐指数
1
解决办法
1901
查看次数