java - 在 Java/Jython 中更改 BorderLayout 的大小

标签 java swing user-interface jython border-layout

我正在尝试为一个小型命令行程序创建一个 GUI。我在 Jython 中执行此操作,因为我对 Python 比 Java 更熟悉。

我的代码看起来像:

    self.f = JFrame("Demultiplex the data")
    self.f.setSize(900, 500)
    self.f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

    #Create a Text Area
    self.txtArea = JPanel(GridLayout(15,0))
    self.txtArea.setPreferredSize(Dimension(150, 150))
    self.textAreaForSheet = JTextField(30)
    self.textAreaInputForFolder = JTextField(30)
    self.textAreaOutPutFolder= JTextField(30)
    self.txtArea.add(self.textAreaForSheet)
    self.txtArea.add(self.textAreaInputForFolder)
    self.txtArea.add(self.textAreaOutPutFolder)

    #Create Buttons
    self.buttonArea = JPanel(GridLayout(15,15))
    self.buttonArea.setPreferredSize(Dimension(150, 150))
    self.sampleSheetBtn = JButton("SampleSheet", actionPerformed=self.onClickSample)
    self.runOutPutFolder = JButton("RUN Folder",actionPerformed=self.onClickRun)
    self.DemultiplexOutPutFolder = JButton("Output Folder",actionPerformed=self.onClickOut)
    self.buttonArea.add(self.sampleSheetBtn)
    self.buttonArea.add(self.runOutPutFolder)
    self.buttonArea.add(self.DemultiplexOutPutFolder)

    #Create Check Boxes
    self.CheckBox = JPanel(GridLayout(15,15))
    self.buttonArea.setPreferredSize(Dimension(150, 150))
    self.Iter1 = JCheckBox("01_0M_NY", True,)
    self.Iter2 = JCheckBox("02_0M_N", True,)
    self.Iter3 = JCheckBox("03_1M_NY", True,)
    self.Iter4 = JCheckBox("04_1M_N", True,)

    self.CheckBox.add(self.Iter1)
    self.CheckBox.add(self.Iter2)
    self.CheckBox.add(self.Iter3)
    self.CheckBox.add(self.Iter4)

    #Create a Run button "Demultiplex"
    self.ExecutePanel = JPanel()
    self.console=JTextArea(10,80)
    self.RunBtn = JButton("Demultiplex",actionPerformed= self.performDemultiplex)
    self.ExecutePanel.add(self.RunBtn)
    self.ExecutePanel.add(self.console)

    #Add everything to JFrame
    self.f.add(self.txtArea, BorderLayout.CENTER)
    self.f.add(self.buttonArea, BorderLayout.WEST)
    self.f.add(self.CheckBox, BorderLayout.EAST)
    self.f.add(self.ExecutePanel, BorderLayout.SOUTH)

但我希望控制台“self.console=JTextArea(10,80)”占据中心的主要区域。我是一名生物学家,请帮助我。

现在的样子: enter image description here

最佳答案

出于讨论的原因here ,不要使用setPreferredSize() 。计算出的组件的首选尺寸,包括 JTextArea(10,80) ,将文本区域添加到框架的 BorderLayout.CENTER 后,平台的外观和感觉将是正确的。和 pack() 附上Window .

关于java - 在 Java/Jython 中更改 BorderLayout 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25284104/

相关文章:

Java延迟帧重画

python - 在 PyQt 中,如何使用信号和槽将下拉列表连接到函数?

Android 微调器同时显示箭头和选择圆圈?

java - 如何使用jdbc在mysql中动态传递表名?

osx-mountain-lion - OSX 上的 Java 7 配置说明

java - XML 解析错误

java - Java正则表达式的初学者问题

java - 从其他类调用java swing控件和容器

algorithm - UI布局问题/算法

Java 2D 游戏 - MouseClicked 和 MouseMoved 方法