Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราจะซ่อนบานหน้าต่างด้านซ้าย/ขวาของ JSplitPane โดยทางโปรแกรมใน Java ได้อย่างไร


A JSplitPane เป็นคลาสย่อยของ JComponent คลาสที่ช่วยให้เราสามารถจัดองค์ประกอบสองส่วนเคียงข้างกัน ในแนวนอน หรือ แนวตั้ง ในบานหน้าต่างเดียว พื้นที่แสดงผลของส่วนประกอบทั้งสองยังสามารถปรับเปลี่ยนได้ที่รันไทม์โดยผู้ใช้ วิธีการที่สำคัญของ JSplitPane คือ remove(), removeAll(), resetToPreferredSizes() และ setDividerLocation() . JSplitPane สามารถสร้าง PropertyChangeListener อินเตอร์เฟซ. เราสามารถซ่อนบานหน้าต่างบานใดบานหนึ่งได้ (ซ้ายหรือขวา ) โดยทางโปรแกรมโดยคลิกที่ปุ่มซ้าย หรือ ปุ่มขวา และสามารถสร้าง action listener สำหรับปุ่มเหล่านั้นได้

ตัวอย่าง

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JSplitPaneHideTest extends JFrame {
   private JButton leftBtn, rightBtn;
   private JSplitPane jsp;
   public JSplitPaneHideTest() {
      setTitle(" JSplitPaneHide Test");
      leftBtn = new JButton("Left Button");
      rightBtn = new JButton("Right Button");
      jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftBtn, rightBtn);
      jsp.setResizeWeight(0.5);
      // Implemention code to hide left pane or right pane
      ActionListener actionListener = new ActionListener() {
         private int loc = 0;
         public void actionPerformed(ActionEvent ae) {
            JButton source = (JButton)ae.getSource();
            if(jsp.getLeftComponent().isVisible() && jsp.getRightComponent().isVisible()) {
               loc = jsp.getDividerLocation();
               jsp.setDividerSize(0);
               jsp.getLeftComponent().setVisible(source == leftBtn);
               jsp.getRightComponent().setVisible(source == rightBtn);
            } else {
               jsp.getLeftComponent().setVisible(true);
               jsp.getRightComponent().setVisible(true);
               jsp.setDividerLocation(loc);
               jsp.setDividerSize((Integer) UIManager.get("SplitPane.dividerSize"));
            }
         }
      };
      rightBtn.addActionListener(actionListener);
      leftBtn.addActionListener(actionListener);
      add(jsp, BorderLayout.CENTER);
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new JSplitPaneHideTest();
   }
}

ผลลัพธ์

เราจะซ่อนบานหน้าต่างด้านซ้าย/ขวาของ JSplitPane โดยทางโปรแกรมใน Java ได้อย่างไร


เราจะซ่อนบานหน้าต่างด้านซ้าย/ขวาของ JSplitPane โดยทางโปรแกรมใน Java ได้อย่างไร


เราจะซ่อนบานหน้าต่างด้านซ้าย/ขวาของ JSplitPane โดยทางโปรแกรมใน Java ได้อย่างไร