相关疑难解决方法(0)

通过具有简单自定义日志记录框架的线程将消息记录到JavaFX TextArea的最有效方法

我有一个简单的自定义日志框架,如下所示:

package something;

import javafx.scene.control.TextArea;

public class MyLogger {
    public final TextArea textArea;

    private boolean verboseMode = false;
    private boolean debugMode = false;

    public MyLogger(final TextArea textArea) {
        this.textArea = textArea;
    }

    public MyLogger setVerboseMode(boolean value) {
        verboseMode = value;
        return this;
    }

    public MyLogger setDebugMode(boolean value) {
        debugMode = value;
        return this;
    }

    public boolean writeMessage(String msg) {
        textArea.appendText(msg);
        return true;
    }

    public boolean logMessage(String msg) {
        return writeMessage(msg + "\n");
    }

    public boolean logWarning(String msg) {
        return writeMessage("Warning: …
Run Code Online (Sandbox Code Playgroud)

java logging multithreading textarea javafx

10
推荐指数
1
解决办法
1万
查看次数

Java"自"(静态)引用

我正在以静态上下文的方式寻找JAVA中当前类的"自我"引用,就像在PHP Scope Resolution Operator中一样

解决方案:超出范围?请注意,这与静态定义相比真的很慢(乘以300):

static Logger LOG = LoggerFactory.getLogger(new RuntimeException().getStackTrace()[0].getClassName());
Run Code Online (Sandbox Code Playgroud)

老式的方式是:

static Logger LOG = LoggerFactory.getLogger(<Classname>.class.getName());
Run Code Online (Sandbox Code Playgroud)

还有其他选择吗?我正在寻找一种将记录器定义放在抽象类中的方法.记录器应该确定它自己调用的类.

java static scope self

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

java堆内存问题

我的应用基本上是一个照片浏览器.我的做法(不要评判我,我是java新手)是要ArrayList填充BufferedImages然后将图像添加到JList(向左).

这是我得到一个图像的方式:

private void getFullImage() {

        BufferedImage im = null;        


        ImageReader imageReader = null;
            try {
                System.out.println("Loading "+original+"...");
                String suffix = Utils.getFileExt(original.getName(), "jpg");
                @SuppressWarnings("rawtypes")
                Iterator readers = ImageIO.getImageReadersBySuffix(suffix);
                imageReader = (ImageReader)readers.next();
                imageReader.setInput(new FileImageInputStream(original));
                im = imageReader.read(0);
                imageReader.dispose();
            } catch (Exception e)
            {
                e.printStackTrace();
            }

        this.img = im;
    }
Run Code Online (Sandbox Code Playgroud)

然后,在我获取所有数据后,我会将图像添加到我的JList:

   Vector vector = new Vector();
   JPanel container = null;
   PhotoPanel pp = null;
   Photo p = null;
   for(int i=0;i<files.length;i++)
   {
        p …
Run Code Online (Sandbox Code Playgroud)

java caching bufferedimage

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

Java记录全局记录器

我有一个桌面java应用程序,我预见到Java日志记录就足够了.为了简化这个问题,我使用java全局记录器获取记录器,而不是传递任何特定的记录器名称

        Logger logger = Logger.getGlobal();
        String logFilePath = Config.INSTANCE.getProperty("logFilePath");
        FileHandler fileHandler = new FileHandler(logFilePath);
        logger.addHandler(fileHandler);
        SimpleFormatter formatter = new SimpleFormatter();
        fileHandler.setFormatter(formatter);
Run Code Online (Sandbox Code Playgroud)

如您所见,我还在输出文件路径和格式化程序方面对全局记录器进行了更改.

我的问题是关于全局记录器的范围,它的全局范围是JVM吗?或全局范围的应用程序?如果全局范围在JVM上,我是否应该对共享相同JVM的应用程序产生副作用?提示:我已经完成了这个线程在java.util.logging中,什么是全局记录器?但评论不是我可以利用的.

java logging

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

如果失败 - >登录文本文件

我想在文本文件中记录失败的条目.

 }else System.out.println("not found!");    

 //Enter entry(log it) in a txt file.
Run Code Online (Sandbox Code Playgroud)

如何在不创建方法的情况下进行此操作?

编辑:我的意思是如果方法更好,那么建议?

java

-1
推荐指数
1
解决办法
125
查看次数