标签: jbutton

绘制一个看起来像JLabel的JButton(或者至少没有按钮边缘?)

我有一个JButton,出于各种原因我想表现得像一个按钮,但看起来像一个JL​​abel.它实际上并不一定是引擎盖下的JLabel,我只是不希望凸起的按钮边缘显示出来.

是否有一种简单的方法可以关闭JButton的"按钮外观",但保留所有按钮功能?

我可以构建一些组合的子类超级按钮,它被委托给jlabel用于显示目的,但我真的希望有类似的东西button.lookLikeAButton(false).

java swing jlabel jbutton

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

将JButton文本设置为左对齐?

我之前有一个JLabel,我想点击它.我发现这样做最简单的方法是使它成为JButton并使用以下代码.它现在看起来像一个JL​​abel

button.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
button.setBorderPainted(false);
button.setContentAreaFilled(false);
button.setFocusPainted(false);
Run Code Online (Sandbox Code Playgroud)

这正是我想要的,除了文本现在在中间对齐.现在从我能够阅读其他问题和搜索.这应该工作

button.setHorizontalTextPosition( SwingConstants.LEFT );
Run Code Online (Sandbox Code Playgroud)

然而,文本仍然在按钮中间对齐.我有什么想法可以改变这个?

java swing alignment jbutton text-alignment

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

在秋千上圆滑的圆角

我想为我的挥杆应用做出光滑的圆角,但我无法得到我想要的结果......

这是截图:

1. setShape()对于JFrame:

在此输入图像描述

2. paintComponent()JPanel的覆盖方法,而不是使用setShape():

在此输入图像描述

3. setBackground(new Color(0, 0, 0, 0))对于JFrame:

在此输入图像描述

好吧,但文字质量有问题:

在第3步之前:

在此输入图像描述

在第3步之后:

在此输入图像描述

伙计们我很困惑,我已多次搜索,但没有任何帮助我...我该怎么办?请帮我

这是完整的代码:

public class WelcomePage extends JFrame {

private Point initialClick;
private boolean end = false;
private JLabel jLabelAppTitle;
private JPanel jPanelExit;
private JLabel jLabelHint;
private int r = 220, g = 0, b = 0;
private int r2 = 10, g2 = 10, b2 = 10;
private boolean flag = false;

public WelcomePage() {
    initComponents();
//    setShape(new RoundRectangle2D.Double(0, 0, …
Run Code Online (Sandbox Code Playgroud)

java swing rounded-corners jbutton java-8

18
推荐指数
2
解决办法
1825
查看次数

如何在Java GUI中设置按钮的背景颜色?

下面是在特定pannel3上以gridlayout形式创建9个按钮的代码.我想要的是使每个按钮的背景为黑色,上面有灰色文字.有人可以帮忙吗?

 for(int i=1;i<=9;i++)
 {
     p3.add(new JButton(""+i));
 }
Run Code Online (Sandbox Code Playgroud)

java swing jbutton

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

在面板中添加复杂图像,在一个自定义用户界面中使用按钮

我怎样才能将这样的图像放到slavePanelJPanel的顶部和顶部,调整JButtons看起来像图像但是按钮正确缠绕?(现在它们形成一排,四列)

在此输入图像描述

  //
  // Shot Gun mover up/down/left/right, middle on is for zoom
  //
  public void GunMover(JPanel configPanel) throws IOException {

    // Master Panel - holds everything
    JPanel masterPanel = new Panel();
    masterPanel.setLayout(new SpringLayout());

    // Slave Panel - with image background 
    JPanel slavePanel = new Panel();
    slavePanel.setLayout(new SpringLayout());

    // Row 1
    final JButton ptzLeft = new JButton("<");       
    masterPanel.add(ptzLeft, BorderLayout.WEST);

    // Row 2
    final JButton ptzRight = new JButton(">");   
    masterPanel.add(ptzRight, BorderLayout.CENTER);    

    // Row 3
    final JButton ptzUp = …
Run Code Online (Sandbox Code Playgroud)

java icons swing jbutton layout-manager

17
推荐指数
1
解决办法
5693
查看次数

使用Java圆角Swing JButton

好吧,我有一个图像,我想把它作为一个按钮的背景(或一些可引用的东西).问题是这个图像是圆的,所以我需要显示这个图像,没有任何边框等.

保存此按钮的JComponent具有自定义背景,因此按钮确实只需显示图像.

搜索谷歌后,我无法做到这一点.我已经尝试了以下所有,但没有运气:

button.setBorderPainted(false);
button.setContentAreaFilled(false);
button.setOpaque(true);
Run Code Online (Sandbox Code Playgroud)

在我在背景上绘制图标后,按钮会绘制它,但是会保留带边框的丑陋灰色背景等.我还尝试使用JLabel和JButton.并在其上绘制ImageIcon,但如果用户调整窗口大小或最小化窗口,图标就会消失!

我怎样才能解决这个问题?

我只需要将图像绘制并舍入到JComponent并听取它的点击次数......

java swing jbutton

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

如何在JTable单元中单击JButton?

我有一个带有自定义单元格渲染器的JTable.该单元格是一个包含JTextField和JButton的JPanel.JTextField包含一个整数,当用户单击JButton时,应该增加整数.

问题是当我在JTable单元格中使用它时,无法单击JButton.如何使其可点击?

在此输入图像描述

这是我的测试代码:

public class ActiveTable extends JFrame {

    public ActiveTable() {
        RecordModel model = new RecordModel();
        model.addRecord(new Record());
        JTable table = new JTable(model);
        EditorAndRenderer editorAndRenderer = new EditorAndRenderer();
        table.setDefaultRenderer(Object.class, editorAndRenderer);
        table.setDefaultEditor(Object.class, editorAndRenderer);
        table.setRowHeight(38);

        add(new JScrollPane(table));
        setPreferredSize(new Dimension(600, 400));
        pack();
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("Active Table");
        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new ActiveTable();
            }
        });
    }

    class RecordModel extends AbstractTableModel {

        private final List<Record> records = new ArrayList<Record>();

        @Override
        public int getColumnCount() …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jbutton tablecellrenderer

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

右键单击JButton

我正在尝试用Java编写Minesweeper克隆以获得乐趣.我有一个JButtons网格,我将更改其标签以表示危险计数,标志等.

我的问题是,我不知道如何右键单击JButton来按下按钮.我做了以下事情:

button.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
        boolean mine = field.isMine(x, y);
        if (e.isPopupTrigger()) {
            button.setText("F");
        }
        else {
            if (mine) {
                button.setText("X");
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这似乎根本不起作用; "F"从未显示,只有"X"部分.但更重要的是,这对于按下按钮没有任何作用.

编辑:Macs有弹出触发器发生在mousePress上,而不是mouseClick.

编辑:这是我根据接受的答案制定的解决方案:

button.addMouseListener(new MouseAdapter(){
            boolean pressed;

            @Override
            public void mousePressed(MouseEvent e) {
                button.getModel().setArmed(true);
                button.getModel().setPressed(true);
                pressed = true;
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                //if(isRightButtonPressed) {underlyingButton.getModel().setPressed(true));
                button.getModel().setArmed(false);
                button.getModel().setPressed(false);

                if (pressed) {
                    if (SwingUtilities.isRightMouseButton(e)) {
                        button.setText("F");
                    }
                    else {
                        button.setText("X");
                    }
                }
                pressed = false;

            }

            @Override
            public void mouseExited(MouseEvent e) …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton

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

如何在推送JButton时关闭GUI

有谁知道如何使jbutton关闭gui?我认为这样System.CLOSE(0);但是没有用.它也可能exitActionPerformed(evt);,但这也不起作用.只需要代码行就可以了.

编辑:别介意的人.答案是System.exit(0);.谢谢你的帮助!

java user-interface swing jbutton

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

如何以编程方式将ActionEvent发送到JButton?

如何以编程方式发送ActionEvent(例如按下按钮/ ACTION_PERFORMED)到JButton

我知道:

button.doClick(0);
Run Code Online (Sandbox Code Playgroud)

button.getModel().setArmed(true);
button.getModel().setPressed(true);
button.getModel().setPressed(false);
button.getModel().setArmed(false);
Run Code Online (Sandbox Code Playgroud)

但是不是可以直接发送它ActionEvent吗?

编辑:这不是生产代码,它只是一个小小的个人实验.

java swing event-handling jbutton actionlistener

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