我想提前感谢您抽出时间阅读我的问题,我将非常感谢您提供的任何评论,答案,见解,技术和批评.
我正在寻找一种有用的方法来更改Java应用程序的桌面图标.我已经调查了几天,但是没有找到准确的结果.
在您将其标记为重复并将其称为重复之前,我已阅读:如何更改Java中的默认应用程序图标?对其他提出这个问题的人),但这并没有解决我的具体问题.我知道他们的方法使用url位置而不是导入,但我试图学习如何使用导入(如果这样,实际上可能).当我尝试使用他们的方法来改变源位置时.除此之外,url示例似乎不适用于存储在计算机上的文件.当我尝试运行它时,我收到"未捕获的错误"消息.
我使用以下格式声明我已导入NetBeans的图像:
Image image = new ImageIcon("imported.png").getImage();
frame.setIconImage(image);
Run Code Online (Sandbox Code Playgroud)
现在这适用于工具栏中显示的图标,它也出现在框架的左上角,但是当我清理和构建它时,我仍然将Java咖啡杯作为应用程序的图标.
有关我用于尝试此操作的代码的其他资源:
import java.awt.Image;
import javax.swing.*;
public class Check {
JFrame frame;
public static void main(String[] args) {
new Check().go();
}
private void go() {
frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Image image = new ImageIcon("owl.gif").getImage();
frame.setIconImage(image);
frame.setVisible(true);
frame.setSize(300, 300);
}
}
Run Code Online (Sandbox Code Playgroud)
"owl.gif"位是我通过单击和拖动方法导入到NetBeans中的内容(如我在其中一本专注于NetBeans的书籍中所述).
我正在寻找一种方法来创建一个文件,我已经在我的计算机上保存了应用程序的桌面图标.
我无法理解SerializationJava 1.6 的基础知识.
下面是Dog包含Class的实例变量的CollarClass:
Dog.java
public class Dog implements Serializable {
private Collar collar;
public Collar getCollar() {
return collar;
}
public void setCollar(Collar collar) {
this.collar = collar;
}
}
Run Code Online (Sandbox Code Playgroud)
Collar类没有实现Serializable接口,如下所示:
Collar.java
public class Collar {
private int size;
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试序列化时,Dog为什么它不抛出NotSerializableException?根据合同,整个对象图应该实现,Serializable但我的Collar班级不满足.
以下是此演示的主要方法:
public static void main(String[] args) …Run Code Online (Sandbox Code Playgroud) 我们可以在接口中拥有一个类,该类具有在其中实现的接口的不同方法吗?我在这里有一个疑问,为什么Java允许在接口内编写内部类以及我们可以在哪里使用它。
在下面的程序中,我在接口中编写了一个类并实现了接口的方法。在接口的实现类中,我刚刚调用了内部类方法。
public interface StrangeInterface
{
int a=10;int b=5;
void add();
void sub();
class Inner
{
void add()
{
int c=a+b;
System.out.println("After Addition:"+c);
}
void sub()
{
int c=a-b;
System.out.println("After Subtraction:"+c);
}
}
}
abstract public class StrangeInterfaceImpl implements I {
public static void main(String args[])
{
StrangInterface.Inner i=new StrangeInterface.Inner();
i.add();
i.sub();
}
}
Run Code Online (Sandbox Code Playgroud) 我对编程很新,对Java来说也是新手.我在今年秋天开始开设计算机科学课程之前就开始自学,我对两种不同作者的语法有好奇心.在一本书中,通常通过使类成为JFrame的扩展来建立JFrame
public class MyClass extends JFrame {
Run Code Online (Sandbox Code Playgroud)
等等
但是,另一位作者以及本网站上的问题通常会在课程内部建立一个框架:
public class MyClass {
JFrame frame = new JFrame();
Run Code Online (Sandbox Code Playgroud)
首先,一个优于另一个的优势是什么?在我看来,我并不是一个专家,将类作为JFrame的扩展可以更容易地设置框架的参数并且还可以向其添加组件.
你只想说扩展格式的IE
add(component);
Run Code Online (Sandbox Code Playgroud)
但是,在其他格式中,必须键入:
frame.getContentPane().add(component);
Run Code Online (Sandbox Code Playgroud)
这似乎更乏味.
有人可以简洁地解释这背后的原因,或者只是一个偏好的问题.我已经调查了这个并且无法得到直接的答案.
java ×4
swing ×2
composition ×1
icons ×1
image ×1
imageicon ×1
inheritance ×1
interface ×1
jframe ×1
serializable ×1
servlets ×1