在这里,我附上了我的代码:我现在正在开发我想要创建的音乐播放器,所以我在Swing FrameWork上编码此代码可以正常工作,然后添加两个名为上一个按钮和下一个播放按钮的按钮,添加这些按钮后,摆动框架没有打开,即使我尝试通过评论新添加的行(上一个按钮和下一个按钮),但这对我没有帮助
//Main Method
import javax.swing.JFrame;
import javax.swing.SwingUtilities;`
public class App{
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable() { //To make Robust
public void run(){ //Run Method
new MainFrame(); }
});
}
}
//Frame Method
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import java.awt.FlowLayout;
public class MainFrame extends JFrame{
private JButton Play,Previous,Next;
private JTextArea textArea;
public MainFrame(){
super("Hello World"); //Inherit that Jframe
try{
setLayout(new BorderLayout()); //Setting Layout
setLayout(new FlowLayout());
Play=new JButton("Play"); //Creating Object for Button
Previous=new JButton("Previous");
Next=new JButton("Next");
textArea=new JTextArea();//Creating object for JTextArea
Play.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent l) {
textArea.append("Song plays\n");//Print Song Plays
}
});
Previous.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent l){
textArea.append("Previous Song\n");
}
});
Next.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent l){
textArea.append("Next Song\n");
}
});
//Adding TextArea and Buttons to Frame
add(Play,FlowLayout.CENTER);//Adding to Frame
add(textArea,FlowLayout.LEADING);//Adding to Frame
add(Previous,FlowLayout.LEFT);
add(Next,FlowLayout.RIGHT);
setSize(800,800);//Size for Frame
setResizable(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
catch( Exception e){
e.printStackTrace();
}
}
}
Oracle提供了一个有用的教程,使用Swing创建GUI。跳过NetBeans IDE部分的学习摆动。特别注意容器部分内的组件布局。
我继续创建了以下GUI。
创建Swing GUI时,将Swing组件添加到JPanel或JScrollPane。将jpanel和/或JScrollPanes添加到JFrame中。这有助于保持代码的条理化。
Swing布局管理器使创建GUI变得简单。将Swing组件添加到一个或多个JPanel,将JPanel添加到JFrame,然后打包JFrame。
我使用的唯一“技巧”是将最大的按钮的首选大小复制到其他按钮。这使GUI看起来更好。
这是完整的可运行代码。
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class MusicPlayer implements Runnable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new MusicPlayer());
}
private JTextArea textArea;
@Override
public void run() {
JFrame frame = new JFrame("Music Player");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(createTextArea(), BorderLayout.CENTER);
frame.add(createButtonPanel(), BorderLayout.SOUTH);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
private JScrollPane createTextArea() {
JPanel panel = new JPanel(new BorderLayout());
panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
textArea = new JTextArea(10, 40);
panel.add(textArea, BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane(panel);
return scrollPane;
}
private JPanel createButtonPanel() {
JPanel panel = new JPanel(new FlowLayout());
panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
JButton previousButton = new JButton("Previous");
previousButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
textArea.append("Previous Song\n");
}
});
panel.add(previousButton);
JButton playButton = new JButton("Play");
playButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
textArea.append("Song plays\n");// Print Song Plays
}
});
panel.add(playButton);
JButton nextButton = new JButton("Next");
nextButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
textArea.append("Next Song\n");
}
});
panel.add(nextButton);
// Make the buttons the same size
Dimension d = previousButton.getPreferredSize();
playButton.setPreferredSize(d);
nextButton.setPreferredSize(d);
return panel;
}
}
日安, 我有一个问题,在我的代码中,一个声明在函数之外有一个错误。 谢谢
您将自动执行著名的歌曲“墙上的99瓶XXX”。你将打印这首歌所有99个诗句的歌词。用循环!如果你不知道歌词,用谷歌查一下。 该方案应: a.如果他们不到21岁,或者他们喜欢苏打水,那么歌词是“墙上有99瓶苏打水” B.如果他们超过21岁,那么是“99瓶啤酒” 您必须使用WHILE循环,并且counter变量必须是print语句的一部分! 所以第一节是: 99瓶苏打水挂在墙上 墙上有98瓶苏打水 最
今天我在家里的电脑上安装了netbean,以便在家做一些工作。我安装了java 8 JDK(151),并安装了包含所有内容的netbean(没有进行自定义安装)。然后我把我的项目从github上撤下来。 我的安装文件夹是在E:\netbean我的项目文件夹是默认的c: 我加载了项目,打开XAMPP并运行它。太好了,很管用。 然后我对HTML进行了更改(修复了我犯的一个拼写错误)。再次运行。找不到零
问题内容: 我知道静态方法在类级别。因此,我知道我不需要创建实例来调用静态方法。但我也知道我可以将静态方法(如LIKE)称为实例方法。这是我感到困惑的地方,因为我期望从null对象调用静态方法(就像在调用实例方法中一样)。我真的很感谢一些解释,为什么我错了一个期望。 这是示例代码: 问题答案: 通过实例调用静态方法不需要实例存在。只要编译器能够确定变量的类型,它就可以在评估表达式并丢弃结果后静态进
我将角色粘贴到一个空对象,并将刚体脚本应用到该空对象(以更改轴)。 使用系统。收藏;系统收藏。通用的联合发动机; 公共类主要特征:单一行为{公共浮动速度; }