Java 在jFrame中的同一x轴上创建两个按钮
下面的java代码有一个图像和一个按钮,我只想添加另一个按钮,它与当前按钮所在的x轴相同。我不知道怎么做。我以为我试图操纵abc.weightx并对其进行更改,但没有效果。我在下面附上了一张我想做的事情的照片Java 在jFrame中的同一x轴上创建两个按钮,java,swing,layout,layout-manager,Java,Swing,Layout,Layout Manager,下面的java代码有一个图像和一个按钮,我只想添加另一个按钮,它与当前按钮所在的x轴相同。我不知道怎么做。我以为我试图操纵abc.weightx并对其进行更改,但没有效果。我在下面附上了一张我想做的事情的照片 将按钮置于中心流布局中。将流布局放在边框布局的页尾 将按钮置于中心流布局中。将流布局放在边框布局的页尾 您没有从GridBagConstraint设置gridx和gridy,因此它们可能不会出现在您想要的位置 我建议遵循并使用BorderLayout,主面板位于BorderLayout.
将按钮置于中心流布局中。将流布局放在边框布局的页尾 将按钮置于中心流布局中。将流布局放在边框布局的页尾 您没有从
GridBagConstraint
设置gridx
和gridy
,因此它们可能不会出现在您想要的位置
我建议遵循并使用BorderLayout
,主面板位于BorderLayout.CENTER
位置,按钮位于单独的JPanel
位置,默认设置为FlowLayout
,您将其置于BorderLayout.SOUTH
位置
如果您想坚持使用GridBagLayout
:
- 主面板:
gridx=0
gridy=0
gridwidth=2
weightx=1
weighty=1
- 左键:
gridx=0
gridy=1
- 右键:
gridx=1
gridy=1
我不会发布代码,因为如果您亲自尝试,您将学到更多。您没有从
gridbag约束设置gridx
和gridy
,因此它们可能不会出现在您想要的位置
我建议遵循并使用BorderLayout
,主面板位于BorderLayout.CENTER
位置,按钮位于单独的JPanel
位置,默认设置为FlowLayout
,您将其置于BorderLayout.SOUTH
位置
如果您想坚持使用GridBagLayout
:
- 主面板:
gridx=0
gridy=0
gridwidth=2
weightx=1
weighty=1
- 左键:
gridx=0
gridy=1
- 右键:
gridx=1
gridy=1
我不会发布代码,因为如果您亲自尝试,您将学到更多。我是java新手,不知道如何做到这一点?我真的很感谢你的帮助。“你能用代码给我看吗?”所以这不是代码生成服务。如果你试图实现这个建议&失败了,发布一篇文章,我将进一步研究。我是java新手,不知道如何实现它?我真的很感谢你的帮助。“你能用代码给我看吗?”所以这不是代码生成服务。如果你试图实现这个建议&失败了,发布一篇文章,我会进一步研究。
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.io.IOException;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
class Main extends JFrame {
public static void main(String[] args0) {
try {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.weightx = 0.5;
gbc.weighty = 0.4;
gbc.fill = GridBagConstraints.BOTH;
URL url = new URL("http://www.digitalphotoartistry.com/rose1.jpg");
ImageIcon image = new ImageIcon(url);
JLabel imageLabel = new JLabel(image);
frame.add(imageLabel, gbc);
gbc.weightx = 0.9;
gbc.weighty = 0.1;
gbc.fill = GridBagConstraints.NONE;
JButton b = new JButton("Click Here");
frame.add(b, gbc);
frame.pack();
frame.setVisible(true);
} catch (IOException e) {
e.printStackTrace();
}
}}