大吃一278 2022-12-01 12:14 采纳率: 84%
浏览 29
已结题

关于#拆分面板#的问题,如何解决?

img


编写包含拆分面板(JSplitPane)的窗口程序,左边窗格包含三个按钮,右边窗格显示一副动图,当单击“显示滚动条”按钮,右边窗格显示水平和垂直滚动条,当单击“隐藏滚动条”按钮,右边窗格隐藏水平和垂直滚动条,当单击“退出”按钮时,退出程序。界面形式如下所示:

  • 写回答

1条回答 默认 最新

  • 爱看书的小沐 2022-12-01 13:19
    关注

    试试。

    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*; 
    
    class ImagePanel extends JPanel {
      Image image;
    
      public ImagePanel() {
        image = Toolkit.getDefaultToolkit().createImage("d:/test/test.gif");
      }
    
      @Override
      public void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (image != null) {
          g.drawImage(image, 0, 0, this);
        }
      }
    
    }
    public class Main {
      
      public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
          @Override
          public void run() {
    
            //myPanel1
            JButton button1 = new JButton("显示滚动条");
            JButton button2 = new JButton("隐藏滚动条");
            JButton button3 = new JButton("退出");
            JPanel myPanel1 = new JPanel();
            myPanel1.setLayout(new GridLayout(3,1,5,5));
            myPanel1.add(button1);
            myPanel1.add(button2);
            myPanel1.add(button3);
    
            //myPanel2
            JPanel myPanel2 = new ImagePanel();
    
            //splitPane
            JSplitPane splitPane = new JSplitPane();
            splitPane.setLeftComponent(myPanel1);
            splitPane.setRightComponent(myPanel2);
            splitPane.setDividerSize(1);
            splitPane.setOneTouchExpandable(true);
            splitPane.setContinuousLayout(true);
            splitPane.setDividerLocation(150);
    
            //frame
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(400, 400);
            frame.setVisible(true);
            frame.setContentPane(splitPane);
    
            //event
            button3.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                System.exit(0);
              }
            });
    
          }
        });
      }
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月1日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥15 批量提取WORD信息到EXCEL
  • ¥15 git后台提示“指定的网络不可用”如何处理?
  • ¥15 Omi框架如何兼容Vue
  • ¥15 windows api中有没有可以通过scsi设备发送离散buffer的接口,如何解决?(相关搜索:linux系统|结构体)
  • ¥15 r语言练习题,三个问题都有疑惑
  • ¥15 绝对路径都行,为什么相对路径不行
  • ¥20 ARM64架构下SSCMS部署问题
  • ¥20 请教如何让移动端的热区自适应
  • ¥30 为什么深度学习网络训练会出现训练集和测试集准确率和损失都不变的情况
  • ¥66 如何adb的情况下找打手机隐藏的文件