为什么我的java应用程序模糊?

时间:2014-09-21 11:57:05

标签: java swing layout jframe jpanel

这就是我希望制作的内容 what i want to make

这是我运行java应用程序时显示的内容。 (参见我的按钮上的文字和文本框中的文字是java) what is it being made

我在Windows 7上使用Eclipse Luna。

PS:My labels are blurry in Java没有任何帮助

public class DownloadManager {

    private JFrame frame;
    private JTable table;
    private JTextField txtUrl;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    DownloadManager window = new DownloadManager();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public DownloadManager() {
        initialize();
    }

    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 752, 514);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        table = new JTable();
        table.setBounds(47, 190, 629, 250);
        frame.getContentPane().add(table);

        txtUrl = new JTextField();
        txtUrl.setBounds(47, 84, 391, 34);
        frame.getContentPane().add(txtUrl);
        txtUrl.setColumns(10);

        JButton btnDownload = new JButton("Download");
        btnDownload.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            }
        });
        btnDownload.setBounds(534, 78, 99, 47);
        frame.getContentPane().add(btnDownload);
    }
}

编辑:
Swing rendering appears broken in JDK 1.8, correct in JDK 1.7建议的解决方案,即将NVIDIA GeForce 630M的能量控制设置更改为最高性能无济于事。

1 个答案:

答案 0 :(得分:4)

使用layout manager来缓解上面显示的工件。以下示例nests另一个JPanel

enter image description here

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

public class DownloadManager {

    private JFrame frame;
    private JTable table;
    private JTextField txtUrl;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    DownloadManager window = new DownloadManager();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public DownloadManager() {
        initialize();
    }

    private void initialize() {
        frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        table = new JTable() {
            @Override
            public Dimension getPreferredScrollableViewportSize() {
                return new Dimension(320, 240);
            }
        };
        frame.add(new JScrollPane(table), BorderLayout.CENTER);
        txtUrl = new JTextField(12);
        txtUrl.setColumns(10);
        JButton btnDownload = new JButton("Download");
        btnDownload.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
            }
        });
        JPanel panel = new JPanel();
        panel.add(txtUrl);
        panel.add(btnDownload);
        frame.add(panel, BorderLayout.NORTH);
        frame.pack();
    }
}