当前位置:编程学习 > JAVA >>

界面方面的问题


首先是要在JFrame窗体上画条直线,是怎么处理的?



其次还有个问题是,在窗体上面添加一张背景图片,是怎么添加的?


麻烦各位抽空解决下这个问题,谢谢! --------------------编程问答-------------------- 孩子,回头是岸,学JAVA EE或者安卓吧,JAVA SE已经死了 --------------------编程问答--------------------
import javax.swing.*;
import java.awt.*;

public class Hello extends JPanel {
    private Image backgroundImage = null;

    public Hello() {
        String path = "/Users/Biao/Desktop/x.png"; // 背景图片的地址
        backgroundImage = new ImageIcon(path).getImage(); // 加载背景图片
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        // 绘制背景
        g2d.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), null);

        // 画线
        g2d.setColor(Color.RED);
        g2d.drawLine(0, 0, getWidth(), getHeight());
    }

    private static void createGuiAndShow() {
        JFrame frame = new JFrame("");

        frame.getContentPane().add(new Hello());

        // Set frame's close operation and location in the screen.
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        createGuiAndShow();
    }
}
--------------------编程问答-------------------- 用的JLable直接在上面加图片岂不是更好 --------------------编程问答-------------------- 在jframe上画line 和 图片的例子


import javax.swing.*;
import java.io.*;
import java.awt.image.*;
import java.awt.*;
import java.net.URL;
import javax.imageio.ImageIO;

public class DrawOnFrame extends JFrame
{
//要画的图片
BufferedImage img = null;
public DrawOnFrame()
{
setBounds(0,0,800,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
//我们用URL得到二楼的头像图片,
try
{
URL url = new URL("http://avatar.profile.csdn.net/0/3/5/1_leo2115339.jpg");
img = ImageIO.read(url.openStream());

}
catch (Exception e)
{
e.printStackTrace();
}

repaint();
}

//在paintComponent里面画
@Override
public void paint(Graphics g)
{
//super.paintComponent(g);
//画直线的起点 和 终点
if (img!=null)
{
g.setColor(Color.RED);
//任意图画最先话,就是背景,和油画一样,一层一层
g.drawImage(img,100,100,img.getWidth(),img.getHeight(),null);
g.drawLine(100,100,300,300);
}

}

public static void main(String[] args) 
{
new DrawOnFrame();
System.out.println("Hello World!");
}
}


--------------------编程问答-------------------- drawImage  、drawLine  建议去看swing的API --------------------编程问答-------------------- 楼主百度了吗? 这种问题百度就可以解决 并且很效率 --------------------编程问答--------------------
引用 2 楼 Inhibitory 的回复:
import javax.swing.*;
import java.awt.*;

public class Hello extends JPanel {
    private Image backgroundImage = null;

    public Hello() {
        String path = "/Users/Biao/Desktop/x.png"; // 背景图片的地址
        backgroundImage = new ImageIcon(path).getImage(); // 加载背景图片
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        // 绘制背景
        g2d.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), null);

        // 画线
        g2d.setColor(Color.RED);
        g2d.drawLine(0, 0, getWidth(), getHeight());
    }

    private static void createGuiAndShow() {
        JFrame frame = new JFrame("");

        frame.getContentPane().add(new Hello());

        // Set frame's close operation and location in the screen.
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        createGuiAndShow();
    }
}
支持这个 --------------------编程问答--------------------
引用 1 楼 leo2115339 的回复:
孩子,回头是岸,学JAVA EE或者安卓吧,JAVA SE已经死了

这SE还是先得学学的吧。乃不要打击人家的信心嘛。虽然我也觉得GUI没太大市场。
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,