Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java小程序上更改外观_Java_Swing_Look And Feel_Japplet_Nimbus - Fatal编程技术网

在Java小程序上更改外观

在Java小程序上更改外观,java,swing,look-and-feel,japplet,nimbus,Java,Swing,Look And Feel,Japplet,Nimbus,好的,所以我做了一个测试java小程序,以确保我知道如何制作它们,但我认为默认的外观和感觉看起来非常难看。所以我想把它换成Nimbus,但我的默契不起作用。我花了大约一个小时的时间在谷歌上搜索,但什么也没找到,只有一个论坛有这个问题,但没有我能理解的答案。有什么想法吗?如果这很难理解,我很抱歉 import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.ne

好的,所以我做了一个测试java小程序,以确保我知道如何制作它们,但我认为默认的外观和感觉看起来非常难看。所以我想把它换成Nimbus,但我的默契不起作用。我花了大约一个小时的时间在谷歌上搜索,但什么也没找到,只有一个论坛有这个问题,但没有我能理解的答案。有什么想法吗?如果这很难理解,我很抱歉

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;

public class Websitetest extends JApplet implements ActionListener, Runnable {

    boolean i = false;
    Color red = new Color(255, 0, 0);
    Color lightgrey = new Color(200, 200, 200);
    Thread runner;    

    public void init() {
        setLookAndFeel();
        Button dp = new Button("Don't press");
        dp.addActionListener(this);
        FlowLayout flow = new FlowLayout();
        setLayout(flow);
        add(dp);
    }

    public void paint(Graphics screen) {
        Graphics2D screen2D = (Graphics2D) screen;
        if (i == false) {screen2D.setColor(lightgrey);}
        else {screen2D.setColor(red);}
        screen2D.fillRect(0, 0, getSize().width, getSize().height);
        screen2D.setColor(Color.black);
        if (i == false) {screen2D.drawString("", 5, 60);}
        else {screen2D.drawString("I SAID DON'T PRESS!", 90, 60);}
    }

    public void start() {
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
    }

    public void stop() {
        if (runner != null) {
            runner = null;
        }
    }

    public void run() {
        Thread thisThread = Thread.currentThread();
    }

    public void actionPerformed(ActionEvent event) {
        i = true;
        repaint();
    }

    private void setLookAndFeel() {
        try {
          UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Exception exc) {
            //ignore error
        }
    }
}
关于这一主题的研究表明,Nimbus可能不可用。他们使用以下片段切换到Nimbus(如果可用)

try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Nimbus".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (Exception e) {
    // If Nimbus is not available, you can set the GUI to another look and feel.
}
由于在设置Nimbus之前没有检查它的存在:您确定它在您的系统上真的可用吗


我建议暂时删除
catch
子句,看看是否会收到关于未安装Nimbus的错误消息。

我在我的应用程序上使用了Nimbus,但它似乎无法在小程序上工作。应用程序小程序。幽默我,只是删除一下
捕获
。将
}catch(异常exc){//ignore error}
更改为
}catch(异常exc){exc.printStackTrace();}
&复制/粘贴结果作为对问题的编辑。