我需要创建一些JSpinner控件,我可以检测按钮按下,同时使用当前的外观.我发现我可以轻松地做到这一点,如下所示:
class CustomSpinnerUI extends BasicSpinnerUI {
@Override
protected Component createNextButton() {
// Add custom ActionListener.
}
@Override
protected Component createPreviousButton() {
// Add custom ActionListener.
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,通过这样做,我最终得到一个看起来很讨厌的微调器,它不会像我的UI的其余部分那样使用相同的外观和感觉.我目前正在使用,Nimbus但我需要支持不同的L&F配置.
我想过可能会设置某种动态代理,但找不到任何合适的Spinner接口来让我这样做.
任何人都可以想到解决这个问题的方法吗?我想我要么在ActionListeners没有子类化的情况下得到按钮BasicSpinnerUI,要么想办法让我CustomSpinnerUI使用正确的L&F.
编辑:"默认外观" - >"当前外观".
当我按下其中一个JButton时,我的代码会设置一个6x6的JButton数组,弹出一个6x1 JDialog框,提供6种颜色选择.当其中一个被按下时,方块点击打开JDialog框改变颜色.
我想写一段代码,这样你就可以在任何行/列中只有一个方格的每种颜色.在minut中,布尔我阻止你将相同的颜色设置为相同的正方形(当你点击它时它会变成黑色,如果它是任何其他颜色).
代码如下.任何帮助都感激不尽.谢谢
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;
public class Grid5 extends JFrame implements ActionListener
{
private ColourChooser paintBox = null;
public static final int ROW = 6;
public static final int COLUMN = 6;
private static Grid5 grid;
public static final String defaultName = "Black";
public JButton[][] buttons; //makes an array called buttons
public static void main(String[] args)// sets up a 6x6 grid
{
int rows = 6;
int cols = 6;
int size = …Run Code Online (Sandbox Code Playgroud) 我有一个JButton使用setToolTipText(String str),我在工具提示中有几行写作需要通过换行符分隔.在我想要换行之前,我尝试在每行文本的末尾连接+"/ n",但它没有做任何事情.JToolTiptext没有带有a的构造函数,JTextArea我看不到任何JTextArea允许它转换为a的内容String.有人有主意吗?另外,如何让a JToolTip持续时间超过默认的3秒?感谢您的时间.
我有一个30个按钮[]的数组.我有一个变量buttonClicked.当我按下按钮时,如何获取索引并将索引号存储在buttonClicked中?
谢谢 :)
JButton [] buttons = new JButton[30];
for(int i = 1; i <= 30; i++)
{
int btnNumber = (i > 10 && i <= 20) ? (31 - i) : i;
System.out.printf("i = %d, btnNumber = %d%n", i, btnNumber);
buttons[btnNumber - 1] = new JButton("label " + btnNumber);
//buttons[btnNumber - 1].setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
buttons[btnNumber - 1].setBorder(BorderFactory.createEtchedBorder());
buttons[btnNumber - 1].setOpaque(true);
buttons[btnNumber - 1].setBackground(Color.white);
//Puts the player 1 piece on button 1,3,5,7,9 and player 2 piece on button …Run Code Online (Sandbox Code Playgroud) 我需要一个按钮,当按下该按钮时,启用所有其他按钮,并将标签名称从"关"更改为"开",再次按下时,禁用所有按钮并再次将开关切换回"关闭" ,像一个开/关开关.问题是,我可以"打开它",但我无法将其关闭.
我的java程序中有三个按钮可以播放三种不同的声音.看看我的代码:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.*;
import java.awt.datatransfer.*;
public class VueEditeurEmail extends JFrame implements ActionListener {
private JPanel container = new JPanel();
private JPanel containerHaut = new JPanel();
private JPanel containerAction = new JPanel();
private JButton boutonEnvoyer = new JButton("Envoi");
private JButton boutonAnnuler = new JButton("Annuler");
private JButton contacts = new JButton("Contacts");
private JButton coller = new JButton("Coller");
private JTextArea textArea = new JTextArea();
private ChampsTexte champs1 = new ChampsTexte("Expéditeur :", "");
private …Run Code Online (Sandbox Code Playgroud) 我正在研究一些我需要从另一个函数调用actionlistner一个残疾人的东西jbutton.怎么做?
这是我的JPanel.第一个按钮始终可见,但仅当您在其上放置一个光标时,才能看到该条纹.问题出在哪里?
PS如果可以,请使用简单的英语,因为我不会说英语
public class GamePanel extends JPanel implements KeyListener{
GamePanel(){
setLayout(null);
}
public void paint(Graphics g){
JButton buttonShip1 = new JButton();
buttonShip1.setLocation(10, 45);
buttonShip1.setSize(40, 40);
buttonShip1.setVisible(true);
add(buttonShip1);
JButton buttonShip2 = new JButton();
buttonShip2.setLocation(110, 145);
buttonShip2.setSize(440, 440);
buttonShip2.setVisible(true);
add(buttonShip2);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个3x3网格的jbuttons标记为1-9代表数字键盘.我添加了一个actionlistener和keylistener,它们都调用相同的函数,所以如果他们点击btn1或在数字键盘上按1,就会发生同样的事情.
问题是当我在小键盘上按1时,我想看到btn1按下它,如果这是有意义的.
搜索没有引导我做任何事情,有没有名字?
我的代码中有2个JPanel.第一个是Furutsu7,它是包含我的游戏的主要JPanel.第二个JPanel是Jbutton的开始.我想要完成的是在用户点击Jbutton之后,将出现Furutsu7 JPanel.
这是我创建按钮的安装类.
public void setup(){
JFrame f = new JFrame("Start ");
JPanel card1 = new JPanel();
JPanel card2 = new JPanel();
cards = new JPanel(new CardLayout());
JButton Card1Button = new JButton("Start");
card1.add(Card1Button);
JButton Card2Button = new JButton("Exit");
card2.add(Card2Button);
cards.add(card1, "C1");
cards.add(card2, "C2");
f.add(cards, BorderLayout.CENTER);
f.setTitle("Furutsu");
f.setSize(500, 300);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
我需要帮助的是我应该为了切换到Furutsu JPanel而执行的操作.
public void actionPerformed(ActionEvent e) {
}
Run Code Online (Sandbox Code Playgroud) java ×10
jbutton ×10
swing ×9
arrays ×1
audio ×1
cardlayout ×1
events ×1
javasound ×1
jcomponent ×1
jpanel ×1
jspinner ×1
keylistener ×1
string ×1