问候大家.我正在编写一个java程序.我想改变JButton的背景,但我无法改变它.当功能结束时,颜色不会改变一点.这是我的代码:
public void initialization() {
button = new JButton[size][size];
mainPanel.setLayout(new GridLayout(0, size));
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
button[i][j] = new JButton();
button[i][j].setBackground(Color.BLACK);
//button[i][j].setVisible(true);
//button[i][j].setEnabled(false);
mainPanel.add(button[i][j]);
}
}
mainPanel.updateUI();
System.out.print("Button Finished\n");
}
Run Code Online (Sandbox Code Playgroud)
我希望有一个人可以帮助我.
在Nimbus的外观和感觉JButtons有一个非常整洁和准确的外观,圆形边框和漂亮的背景.
我想渲染一个具有相同外观的JPanel(显然它不会有按下状态等).
我有什么选择?
好吧,我在视频/学校的java学习中作为初学者编写了这段代码,我得到了一些问题.
1 =>为什么文件>退出按钮不起作用并且有一个小箭头,好像有一些孩子一样?大退出按钮使用相同的功能.我从这里受到启发:http://www.youtube.com/watch? src_vid = FB_wJpIdA8k&feature = iv&annotation_id = annotation_40248&v = dwLkDGm5EBc
2 =>如何让该按钮变小?当我调整它时,它会更大.
3 =>有谁知道一个简单的声音播放器库?那么当我按下那个按钮播放声音时?我已尝试过一些网络示例,例如http://www.developer.com/java/other/article.php/2173111/Java-Sound-Playing-Back-Audio-Files-using-Java.htm并且不知道如何使它变得简单,并在SoundPlay(sound.au)等各处使用它;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class form4
{
public static void main(String[] args)
{
// Frame
JFrame frame = new JFrame("Menu");
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Just create menubar
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
// Add an JMenu
JMenu file = new JMenu("File");
menubar.add(file); …Run Code Online (Sandbox Code Playgroud) 我创建了一个JPanel并添加了几个简单的按钮,并附加了监听器.然后我决定将一个Image添加到我的面板的背景中,所以我将我的JPanel切换到了ImagePanel.按钮正在JPanel上工作,但现在我为要显示的背景图像添加了一堆代码,按钮不再显示.我没有更改任何按钮添加代码,所以我很困惑为什么按钮不再显示.这也发生在我单独的GameFrame类中.我在面板中添加了2个矩形组件,然后是3个按钮.对于该面板,只有按钮显示,尽管在添加按钮之前矩形工作.我可以每个面板只有一种类型的JComponent吗?我真的不明白为什么这样做.感谢您的时间.
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TitleFrame extends JFrame
{
private ImagePanel panel;
private JButton mage;
private JButton rogue;
private JButton warrior;
private Image image;
public TitleFrame()
{
JFrame frame = new JFrame();
frame.setSize(1024, 768);
frame.setTitle("Title Screen");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
createMageButton();
createRogueButton();
createWarriorButton();
ImagePanel panel = new ImagePanel(new ImageIcon("C:/Users/Derek Reitz/Documents/Eclipse Projects/GameApp/src/background.jpg").getImage());
panel.add(mage);
panel.add(rogue);
panel.add(warrior);
panel.paintComponent(frame.getGraphics());
frame.getContentPane().add(panel);
}
private void createRogueButton() {
rogue = new JButton("Select Rogue"); …Run Code Online (Sandbox Code Playgroud) 除了使用之外button.setVisible(false),还有一种简单的方法可以将一组设置jButtons为隐形和可见吗?
该算法如下 - 当用户点击结账按钮时,显示一组支付按钮(面额按钮).试图研究是否有更简单的方法来实现这一目标.
可能重复:
多次通过单击摆动按钮更改标签文本无法正常工作
我正在使用Java Swing开发一个GUI,其中我使用两个组件JButton和JLabel.JLabel的文本最初设置为"单击按钮".单击按钮后,我希望JLabel的文本更改为"Processing".最后到"Processed"
因此,当我单击按钮时,控件转到ActionPerformed,其中我使用setText()方法将JLabel的文本设置为"Processing".ActionPerformed中的最后一个语句是使用setText()将JLabel的文本设置为"Processed".
当我运行程序时,标签显示"单击按钮".最后它变为"已处理".但是,它从不显示"正在处理".
我创建了一个接收Action的JButton类,JButton类包括击键和鼠标监听器,因此我可以根据需要在多个帧中使用相同的类.
我的问题是:按下键时JButton没有得到焦点,但是它正在执行操作.我需要创建一个新的背景或告诉用户按钮执行操作的东西.
有任何想法吗??
这是我的代码:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
import swtdesigner.SwingResourceManager;
public class IButtonSave extends JButton{
private static final long serialVersionUID = 1L;
private Action action = null;
public IButtonSave() {
super();
setFocusPainted(true);
setFocusable(true);
try {
jbInit();
} catch (Throwable e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
setMargin(new Insets(0, 0, 0, 0));
setBorder(new LineBorder(Color.black, 1, true));
setIconTextGap(0); …Run Code Online (Sandbox Code Playgroud) 是否可以通过方法调用触发事件?(以及点击).下面是一个示例代码.它不是一个有效的代码,它只是演示了我的想象.
import java.awt.event.*;
import javax.swing.*;
public class Game extends JFrame
{
JButton leftButton = new JButton("left");
JButton rightButton = new JButton ("right");
private JButton Move(String moveClickString)
{
JButton chosenButton = new JButton();
if (moveClickString.equals("left"))
{
chosenButton = leftButton;
}
if (moveClickString.equals("right"))
{
chosenButton = rightButton;
}
return chosenButton;
}
public void actionTrigger(JButton buttonClick)
{
buttonClick.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Object buttonPressed = e.getSource();
if (buttonPressed == leftButton);
{
//do left
}
if (buttonPressed == rightButton);
{
//do …Run Code Online (Sandbox Code Playgroud) 嗨,我想在这里制作桌面应用程序我在使用jscrollpane.我想在jscrollpane中添加multipul按钮.我只能添加单个按钮,我该怎么做
我的代码如下
public class AddingToJScrollPane {
public static void main(String args[]) {
JFrame frame = new JFrame("Tabbed Pane Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("Label");
label.setPreferredSize(new Dimension(1000, 1000));
JScrollPane jScrollPane = new JScrollPane(label);
JButton jButton1 = new JButton("Hello");
JButton jButton2 = new JButton("Hello");
jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane.setViewportBorder(new LineBorder(Color.RED));
jScrollPane.getViewport().add(jButton1,jButton2);
frame.add(jScrollPane, BorderLayout.NORTH);
frame.setSize(400, 150);
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
更新的代码
public class AddingToJScrollPane {
public static void main(String args[]) {
JFrame frame = new JFrame("Tabbed Pane Sample");
JPanel panel = new JPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.setLayout( …Run Code Online (Sandbox Code Playgroud) 我在这里不允许出现错误'void'类型
码:
public void create(JPanel jp){
jp.add(new JButton().setPreferredSize(new Dimension(40, 40)));
}
Run Code Online (Sandbox Code Playgroud)
但是当我使用相同的代码而没有.setPreferredSize(new Dimension(40, 40))它工作正常.
工作代码
public void create(JPanel jp){
jp.add(new JButton());
}
Run Code Online (Sandbox Code Playgroud) java ×10
jbutton ×10
swing ×10
jpanel ×3
jframe ×2
events ×1
focus ×1
jlabel ×1
jscrollpane ×1
key-bindings ×1
nimbus ×1
text ×1
visibility ×1