小编use*_*293的帖子

如何在Runnable JAR中存储和检索属性?

我正在尝试使用Java类属性在执行之间保存应用程序的设置.之后我想将我的应用程序导出到可运行的JAR文件中,并保留这个文件中所需的所有内容以提供可移植性.所以我的应用程序必须找到属性文件,加载它然后在退出时将新设置保存到其中.

装载工作正常:

Properties prop = new Properties().load(this.getClass().getResourceAsStream("properties.cfg"));
Run Code Online (Sandbox Code Playgroud)

但是对于存储,我需要找到相同的文件并覆盖它.方法Properties.store()需要一个OutputStream,但getResourceAsStream返回一个InputStream,因此我找不到该文件并访问它.

它应始终位于*.class文件中.我发现许多解决方案在导出到JAR之前有效但没有一个在导出后可以工作.谢谢你的任何建议.

java jar properties

4
推荐指数
1
解决办法
3381
查看次数

如何使线条动画更流畅?

我正在用Java制作一个简单的动画,我试图让它尽可能顺利.

我只使用每个Shape对象的*.Double内部类,并在Graphics2D对象中设置抗锯齿.只要我只使用fill()方法,但是如果我也使用draw()方法在同一个Shape周围绘制线条,那么这些线条的动画都是不连续的 - 逐个像素.

画布上的每个矩形都有这种绘制方法.它每20ms移动一次,整个画布使用Timer和TimerListener重新绘制.

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class AnimationTest {
    public static void main(String[] args) {
        JFrame frm = new JFrame("Test");
        frm.setBounds(200, 200, 400, 400);
        frm.setResizable(false);
        frm.setLocationRelativeTo(null);

        AnimationCanvas a = new AnimationCanvas();
        frm.add(a);

        frm.setVisible(true);

        a.startAnimation();
    }
}

class AnimationCanvas extends JPanel {

    SimpleSquare[] squares = new SimpleSquare[2];

    AnimationCanvas() {

        squares[0] = new SimpleSquare(50, 80, true);
        squares[1] = new SimpleSquare(160, 80, false);

    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        for (SimpleSquare c : …
Run Code Online (Sandbox Code Playgroud)

java animation smooth timer graphics2d

2
推荐指数
1
解决办法
3944
查看次数

标签 统计

java ×2

animation ×1

graphics2d ×1

jar ×1

properties ×1

smooth ×1

timer ×1