是否可以将JDesktopPane
和JInternalFrame
添加到JPanel
如果是这样,我该怎么做。我尝试添加它,但它无法工作。将JDesktopPane添加到JPanel
-2
A
回答
4
“是否有可能的JDesktopPane和JInternalFrame的添加到JPanel”
当然,你可以
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.TitledBorder;
public class JDesktopPaneDemo1 {
private static final String URL_ONE = "http://www.hdbackgroundspoint.com/wp-content/uploads/2013/12/16/345t34.jpeg";
private static final String URL_TWO = "http://www.hdbackgroundspoint.com/wp-content/uploads/2013/09/hh.jpeg";
private Image image;
private JDesktopPane desktop;
public JDesktopPaneDemo1() {
desktop = createDesktopPane();
JInternalFrame iFrame = createInternalFrame();
desktop.add(iFrame);
JPanel panel = new JPanel(new BorderLayout());
panel.setBorder(new TitledBorder("DesktopPane"));
panel.add(desktop);
JFrame frame = new JFrame("Desktop Background");
frame.setContentPane(panel);
frame.setSize(500, 350);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
iFrame.setVisible(true);
}
public JDesktopPane createDesktopPane() {
JDesktopPane pane = new JDesktopPane() {
private Image image;
{
try {
image = ImageIO.read(new URL(URL_ONE));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
};
return pane;
}
private JInternalFrame createInternalFrame() {
JInternalFrame frame = new JInternalFrame();
frame.setSize(200, 200);
return frame;
}
public static void main(String[] args) {
for (UIManager.LookAndFeelInfo laf : UIManager
.getInstalledLookAndFeels()) {
if ("Nimbus".equals(laf.getName())) {
try {
UIManager.setLookAndFeel(laf.getClassName());
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException
| UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new JDesktopPaneDemo1();
}
});
}
}
+0
什么是URL_TWO?它似乎没有被使用。 –
+0
@AndrewThompson'image = ImageIO.read(new URL(URL_ONE));'我正在制作一些不同的示例(对于[不同的问题](http://stackoverflow.com/a/22866831/2587435))和我想让自己更容易切换图像 –
相关问题
- 1. 将按钮添加到JDesktopPane
- 2. 如何从ExplorerTopComponent将JDesktopPane添加到EditorTopComponent?
- 3. 将Jpanel添加到JFrame?
- 4. 将JPanel添加到JFrame中
- 5. 将JPanel添加到JList?
- 6. 将组件添加到JPanel
- 7. 将JFXPanel添加到JPanel
- 8. 将JPanel添加到Canvas
- 9. 将组件添加到JPanel
- 10. 将ButtonGroup添加到JPanel
- 11. 将按钮添加到JPanel
- 12. 将JScrollPane添加到JPanel?
- 13. 将path2d添加到jpanel
- 14. 将JScrollPane添加到JPanel
- 15. 将JButton添加到JPanel
- 16. 将元素添加到JPanel
- 17. 将JLayeredPane添加到JPanel
- 18. 将jpanel添加到jframe
- 19. 将图形添加到JPanel
- 20. 将JLabel添加到JPanel
- 21. 将JList添加到JPanel
- 22. 将JMenuBar添加到JPanel?
- 23. 将JPanel添加到JScrollPane
- 24. 将JMenu添加到JPanel
- 25. 将JApplet添加到JPanel
- 26. 将对象添加到Jpanel
- 27. 将actionlistener添加到jpanel
- 28. 将JList/JScrollPane添加到JPanel
- 29. 将JPanel添加到JFrame中
- 30. 将图像添加到JPanel
正如在你最后陈述[关于这个问题的问题](http:// stackoverfl ow.com/questions/22874242/adding-jdesktoppane-to-jframe-using-gridbaglayout),除非你提供一个【示例演示】(https://stackoverflow.com/help/mcve)你的问题,有很少的人可以做。简而言之,是的。 – MadProgrammer
尽管我同意MadProgrammer的说法,但还是猜测:你忘记调用'internalFrame.setVisible(true)'了吗?无论如何,这应该是一个很好的起点:http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html – Marco13