在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) 我正在做这样的事情:
JFrame frame = new JFrame();
frame.setSize(216, 272);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jp = new JPanel();
GridLayout gl = new GridLayout(10, 2);
jp.setLayout(gl);
//this an an 18x18 png
Image img = ImageIO.read(new File("C:\\Users\\Josh\\workspace\\src\\red.png"));
for(int ii=0; ii < 20; ii++)
{
JPanel buttonPanel = new JPanel();
JButton jb1 = new JButton(new ImageIcon(img));
jb1.setBorder(BorderFactory.createEmptyBorder());
buttonPanel.add(jb1);
jp.add(buttonPanel);
}
frame.add(jp);
Run Code Online (Sandbox Code Playgroud)
其产生:

无论我如何调整图像大小或使用frame.size(),我都无法消除垂直间隙。一个块的顶部和另一个块的底部之间始终存在空间。

有谁知道如何删除一个按钮底部和下一个按钮顶部之间的空格?
是否可以通过方法调用触发事件?(以及点击).下面是一个示例代码.它不是一个有效的代码,它只是演示了我的想象.
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) 我正在使用 SystemLookAndFeel,它在我的按钮周围设置默认边框。
现在我想要一个股票黑色边框,但是当我设置边框时,它只会在默认边框周围添加我的新边框,所以我有两个。
如何在不删除 LookAndFeel 的情况下更改或删除边框?
另外:我正在使用 java 7 和 Win 8.1
我想让文字和图标对齐电梯侧只有这里是代码
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class LeftSide
{
public LeftSide()
{
JFrame frame = new JFrame("Button");
JPanel panel = new JPanel();
JButton button = new JButton("Submit");
button.setPreferredSize(new Dimension(200, 30));
button.setIcon(new ImageIcon(this.getClass().getResource("submit.gif")));
panel.add(button);
frame.add(panel);
frame.setVisible(true);
}
public static void main(String[] args)
{
new LeftSide();
}
Run Code Online (Sandbox Code Playgroud)
}
如果我运行此代码,我将在按钮中心的按钮上获得图标和文本,因此如何使它们位于左侧;
我遇到了问题,我无法单击按钮。它们的行为就像只是带有按钮设计的文本字段。
\n\n我的Main:
tableModStudents = (DefaultTableModel) studentsTable.getModel();\n studentsTable.getColumn(studentsTable.getColumnName(8))\n .setCellRenderer(new JButtonRenderer());\n studentsTable.getColumn(studentsTable.getColumnName(8))\n .setCellEditor(new JButtonEditor());\nRun Code Online (Sandbox Code Playgroud)\n\n我的CellRenderer:
public class JButtonRenderer implements TableCellRenderer { \n private JButton button = new JButton();\n\n public Component getTableCellRendererComponent(JTable table,\n Object buttonText, boolean isSelected, boolean hasFocus, \n int row, int column) {\n table.setShowGrid(true);\n button.setText("Details");\n button.setToolTipText(buttonText.toString());\n return button;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我的CellEditor:
public class JButtonEditor extends AbstractCellEditor implements TableCellEditor {\n\n private JButton button;\n private String txt;\n\n public JButtonEditor() {\n super();\n button …Run Code Online (Sandbox Code Playgroud) 我想在 Java Swing 中更改 JButton 组件的边框颜色。
我尝试了以下方法:
package com.example.test;
import java.awt.Color;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class Test extends JFrame {
public Test() {
JPanel panel = new JPanel();
JButton button1 = new JButton("Test Button 1");
JButton button2 = new JButton("Test Button 2");
button2.setBorder(BorderFactory.createLineBorder(Color.RED));
panel.add(button1);
panel.add(button2);
this.add(panel);
setSize(400, 400);
setVisible(true);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName() );
} catch (ClassNotFoundException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, …Run Code Online (Sandbox Code Playgroud)