小编kay*_*kay的帖子

JFrame JPanel刷新/更新/重新绘制

编辑:当我拖动边框时会发送某种刷新,我需要弄清楚并手动发送相同的刷新.

  • 请注意我已尝试使用revalidate()和repaint().

当使用JFrame和JPanel来显示一个框架时,我正在努力使它框架的大小很容易变化.

我要做的是做一个开关,这样我就可以在"小视图"和"大视图"之间切换.

但是,在尝试执行以下操作时,面板内容中会出现一个白条:

  • 开架...(默认是大尺寸)
  • 设置为小尺寸
  • 再次设置为大尺寸
  • 再次设置为小尺寸(这是出现白条时)(请参阅主方法中的注释)

下面是框架内容底部出现的白条图片:白色酒吧游戏的底部

此外,一个很大的注意事项是,当您拖动边框时,白条会消失并重新加载/刷新内容(即使您只拖动了一小部分)

public class FrameTest {
    private static FrameTest instance;

    JFrame clientFrame

    JPanel client_panel;

    private void openFrames() {
            JclientFrame = new JFrame("727 Deob");
            clientFrame.setLayout(new BorderLayout());
            client_panel = new JPanel();
            client_panel.setLayout(new BorderLayout());
            client_panel.add(new Applet());
            client_panel.setPreferredSize(new Dimension(765, 555));
            clientFrame.getContentPane().add(client_panel, BorderLayout.PAGE_END);
            clientFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            clientFrame.pack();
            clientFrame.setVisible(true);
    }

    public static void main(String[] args) {
       instance = new FrameTest();
       instance.openFrames();

       instance.setDimensions(true); //works absolutely fine!
       instance.setDimensions(false); //continues to work absolutely fine!
       instance.setDimensions(true); //now the white bar at the bottom …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jframe

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

Java使用者能够接受并返回布尔值或字符串

这是一个常规消费者用法:

public static void main(String[] args){
    Consumer<String> consumer = (str) -> {
        //stuff
    };

    consumer.accept(args[0]);
}
Run Code Online (Sandbox Code Playgroud)

这是我试图做的事情(使消费者返回布尔值)

public static void main(String[] args){
    Consumer<String> consumer = (str) -> {
        return str.equals("yes"); //type mis-match error because consumer is void not boolean
    };

    boolean a = consumer.accept(args[0]); //type mis-match error because consumer is void not boolean
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能操纵消费者以布尔值的形式返回?

没有明显创建一个全新的界面......(下)

public interface ConsumerB {
    boolean accept(String s);
}
Run Code Online (Sandbox Code Playgroud)

java syntax lambda interface

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

Java反映了Class.forName失败

使用:

final Class<?> c = Class.forName(path);
Run Code Online (Sandbox Code Playgroud)

以下是这些类的存在位置:http://prntscr.com/juqp7g

这是错误:

java.lang.ClassNotFoundException: interfaces/container/InventoryComponentAction
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at scripts.action.ActionManager.init(ActionManager.java:48)
at scripts.system.Application.lambda$0(Application.java:17)
at scripts.system.Application.log(Application.java:29)
at scripts.system.Application.main(Application.java:17)
Run Code Online (Sandbox Code Playgroud)

java reflection syntax class classnotfoundexception

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