GraphicsEnvironment environment=GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = environment.getDefaultScreenDevice();
DisplayMode displayMode=new DisplayMode(1024,768,16,75);
device.setDisplayMode(displayMode); 
我用如上方法怎么 
Exception in thread "Thread-3" java.lang.UnsupportedOperationException: Cannot change display mode
要怎样才能 改变屏幕的分辨率啊?

解决方案 »

  1.   

    下面是一个例子。注意,这个程序不能永久的改变分辨率。就像游戏一样,当你切换出来时,系统仍然使用自己的分辨率。import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;/**
     * 修改分辨率
     */
    public class TestChangeScreenResolution {    public static void main(String[] args) {
            GraphicsDevice dev = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();        JFrame frame = createFullScreenFrame(dev.getDefaultConfiguration());
            dev.setFullScreenWindow(frame);        if (dev.isDisplayChangeSupported()) {
                DisplayMode mode = new DisplayMode(800, 600, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
                dev.setDisplayMode(mode);
            } else {
                System.out.println("cannot change resolution");
            }
        }    // 创建一个全屏的 JFrame,上面有一个关闭按钮。
        private static JFrame createFullScreenFrame(GraphicsConfiguration gc) {
            final JFrame frame = new JFrame(gc);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setUndecorated(true);
            frame.setLayout(new FlowLayout());        JButton button = new JButton("close");
            button.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {
                    frame.dispose();
                }
            });
            frame.add(button);        frame.setVisible(true);
            return frame;
        }
    }