使用GUI做出jframe大小为半个屏幕大小,位置居于屏幕中央,制作左边三分之一一个放置图片的GUI上下边距大概5cm,右边上面制作一个小一点的textarear,右下角制作一个下边距和左边图形一样高的textarear,textarear的文字字体为宋体,大小为17
时间: 2023-12-06 21:44:17 浏览: 64
以下是Java Swing代码实现:
```java
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame {
public MyFrame() {
super("My Frame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(Toolkit.getDefaultToolkit().getScreenSize().width / 2, Toolkit.getDefaultToolkit().getScreenSize().height / 2);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
JPanel leftPanel = new JPanel();
leftPanel.setBorder(BorderFactory.createEmptyBorder((int)(5*Toolkit.getDefaultToolkit().getScreenSize().getHeight()/72), 0, (int)(5*Toolkit.getDefaultToolkit().getScreenSize().getHeight()/72), 0));
ImageIcon image = new ImageIcon("image.jpg");
JLabel label = new JLabel("", image, JLabel.CENTER);
leftPanel.add(label);
add(leftPanel, BorderLayout.WEST);
JPanel rightPanel = new JPanel();
rightPanel.setLayout(new BorderLayout());
rightPanel.setBorder(BorderFactory.createEmptyBorder((int)(5*Toolkit.getDefaultToolkit().getScreenSize().getHeight()/72), (int)(5*Toolkit.getDefaultToolkit().getScreenSize().getWidth()/144), 0, 0));
JTextArea topTextArea = new JTextArea();
topTextArea.setFont(new Font("宋体", Font.PLAIN, 17));
JScrollPane topScrollPane = new JScrollPane(topTextArea);
topScrollPane.setPreferredSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width / 3 - (int)(7.5*Toolkit.getDefaultToolkit().getScreenSize().getWidth()/144), Toolkit.getDefaultToolkit().getScreenSize().height / 2 - (int)(10*Toolkit.getDefaultToolkit().getScreenSize().getHeight()/72)));
rightPanel.add(topScrollPane, BorderLayout.NORTH);
JTextArea bottomTextArea = new JTextArea();
bottomTextArea.setFont(new Font("宋体", Font.PLAIN, 17));
JScrollPane bottomScrollPane = new JScrollPane(bottomTextArea);
bottomScrollPane.setPreferredSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width / 3 - (int)(7.5*Toolkit.getDefaultToolkit().getScreenSize().getWidth()/144), Toolkit.getDefaultToolkit().getScreenSize().height / 2 - (int)(10*Toolkit.getDefaultToolkit().getScreenSize().getHeight()/72)));
rightPanel.add(bottomScrollPane, BorderLayout.SOUTH);
add(rightPanel, BorderLayout.EAST);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame();
}
}
```
解释一下代码:
- `setSize()` 设置 GUI 的大小为屏幕大小的一半。
- `setLocationRelativeTo(null)` 设置 GUI 的位置居中。
- `setLayout()` 设置 GUI 的布局为 `BorderLayout`。
- 创建左边的 `JPanel`,设置边距,添加一个 `JLabel` 显示图片,并将其添加到 GUI 的西侧。
- 创建右边的 `JPanel`,设置布局为 `BorderLayout`,设置边距。
- 创建上面的 `JTextArea`,设置字体为宋体,大小为 17,然后将其添加到一个 `JScrollPane` 中,再将 `JScrollPane` 添加到右边的 `JPanel` 的北侧。
- 创建下面的 `JTextArea`,设置字体为宋体,大小为 17,然后将其添加到一个 `JScrollPane` 中,再将 `JScrollPane` 添加到右边的 `JPanel` 的南侧。
- 将左右两个 `JPanel` 添加到 GUI 上。
- `setVisible(true)` 显示 GUI。
阅读全文