<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Jython Swing 中的對話框 > 原文: [http://zetcode.com/gui/jythonswing/dialogs/](http://zetcode.com/gui/jythonswing/dialogs/) 在 Jython Swing 編程教程的這一部分中,我們將使用對話框。 對話框窗口或對話框是大多數現代 GUI 應用必不可少的部分。 對話被定義為兩個或更多人之間的對話。 在計算機應用中,對話框是一個窗口,用于與應用“對話”。 對話框用于輸入數據,修改數據,更改應用設置等。對話框是用戶與計算機程序之間進行通信的重要手段。 ## `MessageDialog` 消息框是方便的對話框,可向應用的用戶提供消息。 該消息由文本和圖像數據組成。 ```py #!/usr/local/bin/jython # -*- coding: utf-8 -*- """ ZetCode Jython Swing tutorial In this program, we show various message boxes. author: Jan Bodnar website: www.zetcode.com last modified: November 2010 """ from java.awt import GridLayout from javax.swing import JButton from javax.swing import JFrame from javax.swing import JOptionPane from javax.swing import JPanel class Example(JFrame): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.panel = JPanel() self.panel.setLayout(GridLayout(2, 2)) error = JButton("Error", actionPerformed=self.onError) warning = JButton("Warning", actionPerformed=self.onWarning) question = JButton("Question", actionPerformed=self.onQuestion) inform = JButton("Information", actionPerformed=self.onInform) self.panel.add(error) self.panel.add(warning) self.panel.add(question) self.panel.add(inform) self.add(self.panel) self.setTitle("Message boxes") self.setSize(300, 200) self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) self.setLocationRelativeTo(None) self.setVisible(True) def onError(self, e): JOptionPane.showMessageDialog(self.panel, "Could not open file", "Error", JOptionPane.ERROR_MESSAGE) def onWarning(self, e): JOptionPane.showMessageDialog(self.panel, "A deprecated call", "Warning", JOptionPane.WARNING_MESSAGE) def onQuestion(self, e): JOptionPane.showMessageDialog(self.panel, "Are you sure to quit?", "Question", JOptionPane.QUESTION_MESSAGE) def onInform(self, e): JOptionPane.showMessageDialog(self.panel, "Download completed", "Information", JOptionPane.INFORMATION_MESSAGE) if __name__ == '__main__': Example() ``` 我們使用`GridLayout`管理器來設置四個按鈕的網格。 每個按鈕顯示一個不同的消息框。 ```py def onError(self, e): JOptionPane.showMessageDialog(self.panel, "Could not open file", "Error", JOptionPane.ERROR_MESSAGE) ``` 如果按下錯誤按鈕,則會顯示錯誤對話框。 我們使用`showMessageDialog()`方法在屏幕上顯示對話框。 此方法的第一個參數是顯示對話框的框架。 第二個參數是要顯示的消息。 第三個參數是對話框的標題。 最后一個參數是消息類型。 默認圖標由消息類型決定。 在本例中,錯誤對話框的消息類型為`ERROR_MESSAGE`。 ![Error message dialog](https://img.kancloud.cn/d5/a9/d5a96ab0fb6b817b361a739380141d3d_264x122.jpg) 圖:錯誤消息 dialog ## `JColorChooser` `JColorChooser`是用于選擇顏色的標準對話框。 ```py #!/usr/local/bin/jython # -*- coding: utf-8 -*- """ ZetCode Jython Swing tutorial In this program, we use the JColorChooser to change the color of a panel. author: Jan Bodnar website: www.zetcode.com last modified: November 2010 """ from java.awt import BorderLayout from java.awt import Color from javax.swing import BorderFactory from javax.swing import JColorChooser from javax.swing import JButton from javax.swing import JToolBar from javax.swing import JPanel from javax.swing import JFrame class Example(JFrame): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.panel = JPanel() self.panel.setLayout(BorderLayout()) toolbar = JToolBar() openb = JButton("Choose color", actionPerformed=self.onClick) toolbar.add(openb) self.display = JPanel() self.display.setBackground(Color.WHITE) self.panel.setBorder(BorderFactory.createEmptyBorder(30, 50, 30, 50)) self.panel.add(self.display) self.add(self.panel) self.add(toolbar, BorderLayout.NORTH) self.setTitle("Color chooser") self.setSize(300, 250) self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) self.setLocationRelativeTo(None) self.setVisible(True) def onClick(self, e): clr = JColorChooser() color = clr.showDialog(self.panel, "Choose Color", Color.white) self.display.setBackground(color) if __name__ == '__main__': Example() ``` 在示例中,窗口中央有一個白色面板。 我們將通過從顏色選擇器對話框中選擇一種顏色來更改面板的背景色。 ```py clr = JColorChooser() color = clr.showDialog(self.panel, "Choose Color", Color.white) self.display.setBackground(color) ``` 此代碼顯示一個顏色選擇器對話框。 `showDialog()`方法返回所選的顏色值。 我們將顯示面板的背景更改為新選擇的顏色。 ![ColorDialog](https://img.kancloud.cn/4c/79/4c79d49ddde7cf5b416321711397fffa_431x404.jpg) 圖:`ColorDialog` ## `JFileChooser` `JFileChooser`對話框允許用戶從文件系統中選擇一個文件。 ```py #!/usr/local/bin/jython # -*- coding: utf-8 -*- """ ZetCode Jython Swing tutorial In this program, we use the JFileChooser to select a file from a filesystem. author: Jan Bodnar website: www.zetcode.com last modified: November 2010 """ from java.awt import BorderLayout from javax.swing import BorderFactory from javax.swing import JFileChooser from javax.swing import JTextArea from javax.swing import JScrollPane from javax.swing import JButton from javax.swing import JToolBar from javax.swing import JPanel from javax.swing import JFrame from javax.swing.filechooser import FileNameExtensionFilter class Example(JFrame): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.panel = JPanel() self.panel.setLayout(BorderLayout()) toolbar = JToolBar() openb = JButton("Choose file", actionPerformed=self.onClick) toolbar.add(openb) self.area = JTextArea() self.area.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)) pane = JScrollPane() pane.getViewport().add(self.area) self.panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)) self.panel.add(pane) self.add(self.panel) self.add(toolbar, BorderLayout.NORTH) self.setTitle("File chooser") self.setSize(300, 250) self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) self.setLocationRelativeTo(None) self.setVisible(True) def onClick(self, e): chooseFile = JFileChooser() filter = FileNameExtensionFilter("c files", ["c"]) chooseFile.addChoosableFileFilter(filter) ret = chooseFile.showDialog(self.panel, "Choose file") if ret == JFileChooser.APPROVE_OPTION: file = chooseFile.getSelectedFile() text = self.readFile(file) self.area.setText(text) def readFile(self, file): filename = file.getCanonicalPath() f = open(filename, "r") text = f.read() return text if __name__ == '__main__': Example() ``` 在我們的代碼示例中,我們使用`JFileChooser`對話框選擇一個 C 文件并將其內容顯示在`JTextArea`中。 ```py self.area = JTextArea() ``` 這是`JTextArea`,我們將在其中顯示所選文件的內容。 ```py chooseFile = JFileChooser() filter = FileNameExtensionFilter("c files", ["c"]) chooseFile.addChoosableFileFilter(filter) ``` 我們創建`JFileChooser`對話框的實例。 我們創建一個僅顯示 C 文件的過濾器。 ```py ret = chooseFile.showDialog(self.panel, "Choose file") ``` 對話框顯示在屏幕上。 我們得到了返回值。 ```py if ret == JFileChooser.APPROVE_OPTION: file = chooseFile.getSelectedFile() text = self.readFile(file) self.area.setText(text) ``` 如果用戶選擇了文件,我們將獲得文件名。 閱讀其內容并將文本設置為文本區域組件。 ```py def readFile(self, file): filename = file.getCanonicalPath() f = open(filename, "r") text = f.read() return text ``` 此代碼從文件中讀取文本。 `getCanonicalPath()`返回絕對文件名。 ![JFileChooser](https://img.kancloud.cn/57/72/5772a0bd6f7f47af291407b979ba85e3_519x358.jpg) 圖:`JFileChooser` 在 Jython Swing 教程的這一部分中,我們使用了對話框窗口。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看