相关疑难解决方法(0)

加载图片资源

我的GUI出错了.尝试设置标题栏图标,然后将其包含在Runnable JAR中.

BufferedImage image = null;
try {
    image = ImageIO.read(getClass().getClassLoader().getResource("resources/icon.gif"));
} 
catch (IOException e) {
    e.printStackTrace();
}

frame.setIconImage(image);
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)
    at GUI.<init>(GUI.java:39)
    at GUI.main(GUI.java:351)
Run Code Online (Sandbox Code Playgroud)

图像位于正确的目录中,"resources"文件夹是项目文件的根目录

java swing awt nullpointerexception embedded-resource

54
推荐指数
3
解决办法
6万
查看次数

在Swing中实现后退/前进按钮

我有一个快速的问题.

我对Swing有一点经验,最简单的方法是绘制一个相当大的GUI.

作为GUI的一部分,我想要前进和后退按钮.我试图采用的方法是实现将当前JPanel推送到堆栈并检索前一个值的方法(在前向或反向(因此为2个堆栈)).我不能让它工作.也许我会以完全错误的方式解决它,或者堆栈不能以我使用它的方式使用.在任何一种情况下,它真的让我烦恼.我想有可能更简单的方式,如卡布局,但我认为这种方法应该工作,这是非常烦人的.

值得注意的是,我正在使用JFrame"基类"并根据屏幕更改中央JPanel.然而,导航栏是常量,作为"基类"的一部分

这个"基类"的代码:

public class Main_Frame extends JFrame{
    static JPanel nav_bar_panel;
    JButton home;
    JButton back;
    JButton forward;
    JPanel currentPanel;

    static Stack<JPanel> previousPanels;
    static Stack<JPanel> forwardPanels;

    public Main_Frame(){
        super("DEMO");
        setSize(800,600);
        setLayout(new BorderLayout());
        setVisible(true);

        add(nav_bar(), BorderLayout.NORTH);
        currentPanel = init_display();
        add(currentPanel, BorderLayout.CENTER);

        previousPanels = new Stack<JPanel>();
        forwardPanels  = new Stack<JPanel>();
    }

    private JPanel nav_bar(){
        ButtonPressHandler handler = new ButtonPressHandler();

        nav_bar_panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 10));
        back = new JButton("Back");
        back.addActionListener(handler);
        home = new JButton("Home");
        home.addActionListener(handler);
        forward = new JButton("Forward");
        forward.addActionListener(handler); …
Run Code Online (Sandbox Code Playgroud)

java swing stack

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

如何根据组合框选择更改UI

在对话框中,如果选中某个组合,则需要显示一组控件,否则显示另一组控件.即我需要2层,我需要在选中/取消选中组合时在它们之间切换.我怎样才能做到这一点?

谢谢

java user-interface swing cardlayout

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

JComponents没有出现图片背景?

我的组件没有显示出来.我该如何解决?

码:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.*;

public class login implements ActionListener{
    JTextField gusername;
    JTextField gpassword;
    static String username;
    static String password;

    void logini() throws IOException {
        JFrame window = new JFrame("Login");
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setSize(300, 250);
        window.setResizable(false);
        window.setVisible(true);

        JPanel mainp = new JPanel(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();
        window.add(mainp);

        BufferedImage myPicture = ImageIO.read(new File("c:\\bgd.png"));
        JLabel picLabel = new JLabel(new ImageIcon( myPicture ));
        mainp.add(picLabel, c);

        c.gridx = 0;
        c.gridy = …
Run Code Online (Sandbox Code Playgroud)

java swing bufferedimage jpanel jframe

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

如何处理摆动中图像显示的错误文件选择

我正在学习Swing并编写了一个应用程序,让用户可以选择一个图像文件并将其显示在JPanel.它有效,但我想处理时的情况

  1. 用户不选择任何文件
  2. 用户选择非图像文件

在这些情况下,我想清除JPanel并在文本区域显示错误消息.

我尝试这样做如下.但我不确定这是否是正确的方法.我想你的建议.

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;

class Display extends JFrame {

    private MyImagePanel canvas;
    private JButton okbutton;
    private JTextArea result;
    private JFileChooser filechooser;
    private static Insets insets = new Insets(0, 0, 0, 0);

    public Display(String name) {
        super(name);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new GridBagLayout());
        addWidgets();
        showGUI();
    }

    private void showGUI() {
        this.pack();
        this.setVisible(true);
    }

    private void addWidgets() {
        canvas = new MyImagePanel();
        okbutton = …
Run Code Online (Sandbox Code Playgroud)

java swing

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

按钮操作将背景图像添加到JPanel

调用JButton时,将背景图像添加到JPanel/JLabel的最佳方法是什么?我知道如何获得JButton动作等.当按下该按钮时,我无法弄清楚或找到一种方法来改变背景图像.

java swing jpanel actionlistener

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