JAVA 图片控件问题

Python015

JAVA 图片控件问题,第1张

你自己看吧 以前练习的一个小程序 实现了打开本地的jpg图像文件 并改变它的大小 其他类型的图像文件也能打开

import java.awt.*

import java.awt.event.*

public class ImageViewer extends Frame {

//图像文件的打开 图像的缩放 打开本地资源dialog的使用

ImageViewer view = this

Image image = null

String dir = ""

public ImageViewer() {

super()

this.setTitle("ImageViewer")

this.setBounds(0, 0, 600, 500)

this.setVisible(true)

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0)

}

})

MenuBar mb = new MenuBar()

this.setMenuBar(mb)

Menu m = new Menu("菜单")

mb.add(m)

MenuItem mi1 = new MenuItem("打开文件")

mi1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

FileDialog fd = new FileDialog(view, "打开图像", FileDialog.LOAD)

fd.setFile("*.jpg")

fd.setDirectory(dir)

fd.setVisible(true)

String f = fd.getFile()

dir = fd.getDirectory()

if(f != null) {

image = Toolkit.getDefaultToolkit().getImage(dir + fd.getFile())

image = image.getScaledInstance(600, 500, Image.SCALE_SMOOTH)

}

view.repaint()

}

})

MenuItem mi2 = new MenuItem("退出")

mi2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0)

}

})

m.add(mi1)

m.add(mi2)

}

private void init() {

System.out.println(1)

}

public void paint(Graphics g) {

if(image != null) {

g.drawImage(image, 0, 0, this)

}

}

public static void main(String args[]) {

new ImageViewer()

}

}

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

创建一个Imageicon对象

ImageIcon icon=new ImageIcon("你的文件路径")

JFrame对象.seticon(icon.getImage())

这样就可以了

你指的是Tab页吧? Java中没有这样的东西。

大概实现应该是: 

最外层是一个JTabbedPane ,里面是4个JPanel,

这4个JPanel 会根据事件进行切换(隐藏和显示)

示例(跟图中不完全一样,但大概原理是一样的):

package components

 

import java.awt.BorderLayout

import java.awt.Dimension

import java.awt.GridLayout

import java.awt.event.KeyEvent

import java.net.URL

 

import javax.swing.ImageIcon

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JPanel

import javax.swing.JTabbedPane

import javax.swing.SwingUtilities

 

@SuppressWarnings("serial")

public class TabbedPaneDemo extends JPanel {

 

    public TabbedPaneDemo()

    {

       //设置布局管理器,默认的布局管理器是 BorderLayout,这里没那么复杂

       //选择GridLayout(1,1)即可,就是整个为一块     

       super(new GridLayout(1,1))

      

       //创建JTabbedPane

       JTabbedPane tp = new JTabbedPane()

       //创建标签显示的图标

       ImageIcon ii = createImageIcon("images/middle.gif")   

      

      

      

       //创建第一个标签下的panel

       JPanel panel0 = createPanel("panel0")

       //指定标签名,标签图标,panel,和提示信息

       tp.addTab("panel0",ii,panel0,"do noting")

       //设置标签的快捷键

       tp.setMnemonicAt(0, KeyEvent.VK_0)

      

      

       //第二个标签

       JPanel panel1 = createPanel("panel1")

       tp.addTab("panel1",ii,panel1,"do noting")

       tp.setMnemonicAt(1, KeyEvent.VK_1)

 

       //第三个标签

       JPanel panel2 = createPanel("panel2")

       tp.addTab("panel2",ii,panel2,"do noting")

       tp.setMnemonicAt(2, KeyEvent.VK_2)

 

       //第四个标签

       JPanel panel3 = createPanel("panel3")

       tp.addTab("panel3",ii,panel3,"do noting")

       tp.setMnemonicAt(3, KeyEvent.VK_3)

       //设置合适的显示尺寸,这个是必须的,因为如果所有的标签都

       //不指定适合的显示尺寸,系统无法判断初始显示尺寸大小

       //默认是使用最小化,并且对一个标签设计即可

       tp.setPreferredSize(new Dimension(500,500))

 

       //将tabbedPanel添加到Jpanel中

       add(tp)

      

       //设置窗口过小时,标签的显示策略

       tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT)

       //设置标签停放的位置,这里设置为左侧停放

       tp.setTabPlacement(JTabbedPane.LEFT)

      

    }

   

   

   

    private JPanel createPanel(String string) {

       //创建一个JPanel,并为构造函数初始false

       //表示不适用双缓冲

       JPanel panel = new JPanel(false)

      

       //设置布局

       panel.setLayout(new GridLayout(1,1))

      

       //创建一个label放到panel中

       JLabel filler = new JLabel(string)

       filler.setHorizontalAlignment(JLabel.CENTER)

       panel.add(filler)

       return panel

    }

 

 

 

    private ImageIcon createImageIcon(String string) {

       URL url = TabbedPaneDemo.class.getResource(string)

       if(url == null)

       {

           System.out.println("the image "+string+" is not exist!")

           return null

       }

       return new ImageIcon(url)

    }

 

 

 

    public static void createAndShowGUI()

    {

       JFrame frame = new JFrame("table panel test")

       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

      

       frame.add(new TabbedPaneDemo())

      

       frame.pack()

       frame.setVisible(true)

      

      

    }

   

    public static void main(String[] args) {

       SwingUtilities.invokeLater(new Runnable() {

          

           @Override

           public void run() {

              createAndShowGUI()

           }

       })

    }

}