gpt4 book ai didi

Java Swing GUI 似乎没有

转载 作者:行者123 更新时间:2023-12-01 18:03:34 24 4
gpt4 key购买 nike

我正在尝试通过手写而不是使用表单生成器来制作基于 BorderLayoutGridLayout 的 GUI。因此,我很可能会跳过代码中的一部分。它已加载但似乎未加载。

import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.net.InetAddress;
import javax.swing.*;
import javax.swing.border.EmptyBorder;


class PanelDemo {

JButton jbtnUpArrowFirst;
JButton jbtnDownArrowFirst;
JButton jbtnUpArrowSec;
JButton jbtnDownArrowSec;
JButton jbtnUpArrowThird;
JButton jbtnDownArrowThird;

JLabel jlblLedUpFirst;
JLabel jlblLedDownFirst;
JLabel jlblLedUpSec;
JLabel jlblLedDownSec;
JLabel jlblLedUpThird;
JLabel jlblLedDownThird;

private JComponent ui = null;
private Insets buttonMargin = new Insets(10,10,10,10);

PanelDemo() throws IOException {

InitComponents();
}

private void InitComponents() {

if (ui != null) return;

ui = new JPanel(new BorderLayout(4,4));
ui.setBorder(new EmptyBorder(4,4,4,4));

int gap = 5;


JPanel jpnl = new JPanel(new GridLayout(2, 4, gap, gap));
jpnl.setBorder(new EmptyBorder(0, 0, 0, 50));
jpnl.setOpaque(true);
jpnl.setBorder(
BorderFactory.createLineBorder(Color.BLUE));


JPanel jpnl2 = new JPanel(new GridLayout(2, 2, gap, gap));
jpnl2.setOpaque(true);
jpnl2.setBorder(
BorderFactory.createLineBorder(Color.RED));





jbtnUpArrowFirst = new JButton("upfirst" ,new ImageIcon("/Users/Jack/Desktop/up.png"));
jbtnUpArrowFirst.setVerticalTextPosition(SwingConstants.BOTTOM);
jbtnUpArrowFirst.setHorizontalTextPosition(SwingConstants.CENTER);

jbtnDownArrowFirst = new JButton("downfirst" ,new ImageIcon("/Users/Jack/Desktop/down.png"));
jbtnDownArrowFirst.setVerticalTextPosition(SwingConstants.BOTTOM);
jbtnDownArrowFirst.setHorizontalTextPosition(SwingConstants.CENTER);


jlblLedUpFirst = new JLabel("upledfirst", new ImageIcon("/Users/Jack/Desktop/ledOff.png"), SwingConstants.CENTER);
jlblLedUpFirst.setVerticalTextPosition(SwingConstants.BOTTOM);
jlblLedUpFirst.setHorizontalTextPosition(SwingConstants.CENTER);


jlblLedDownFirst = new JLabel("downledfirst", new ImageIcon("/Users/Jack/Desktop/ledOff.png"), SwingConstants.CENTER);
jlblLedDownFirst.setVerticalTextPosition(SwingConstants.BOTTOM);
jlblLedDownFirst.setHorizontalTextPosition(SwingConstants.CENTER);


////////////////////////////////////////////////////////////////////////
jbtnUpArrowSec = new JButton("upsec", new ImageIcon("/Users/Jack/Desktop/up.png"));
jbtnUpArrowSec.setVerticalTextPosition(SwingConstants.BOTTOM);
jbtnUpArrowSec.setHorizontalTextPosition(SwingConstants.CENTER);

jbtnDownArrowSec = new JButton("downsec" ,new ImageIcon("/Users/Jack/Desktop/down.png"));
jbtnDownArrowSec.setVerticalTextPosition(SwingConstants.BOTTOM);
jbtnDownArrowSec.setHorizontalTextPosition(SwingConstants.CENTER);


jlblLedUpSec = new JLabel("upledsecond", new ImageIcon("/Users/Jack/Desktop/ledOff.png"), SwingConstants.CENTER);
jlblLedUpSec.setVerticalTextPosition(SwingConstants.BOTTOM);
jlblLedUpSec.setHorizontalTextPosition(SwingConstants.CENTER);

jlblLedDownSec = new JLabel("downledsec", new ImageIcon("/Users/Jack/Desktop/ledOff.png"), SwingConstants.CENTER);
jlblLedDownSec.setVerticalTextPosition(SwingConstants.BOTTOM);
jlblLedDownSec.setHorizontalTextPosition(SwingConstants.CENTER);
////////////////////////////////////////////////////////////////////////
jbtnUpArrowThird = new JButton("upthirt", new ImageIcon("/Users/Jack/Desktop/up.png"));
jbtnUpArrowThird.setVerticalTextPosition(SwingConstants.BOTTOM);
jbtnUpArrowThird.setHorizontalTextPosition(SwingConstants.CENTER);

jbtnDownArrowThird = new JButton("downthird" ,new ImageIcon("/Users/Jack/Desktop/down.png"));
jbtnDownArrowThird.setVerticalTextPosition(SwingConstants.BOTTOM);
jbtnDownArrowThird.setHorizontalTextPosition(SwingConstants.CENTER);


jlblLedUpThird = new JLabel("upledthird", new ImageIcon("/Users/Jack/Desktop/ledOff.png"), SwingConstants.CENTER);
jlblLedUpThird.setVerticalTextPosition(SwingConstants.BOTTOM);
jlblLedUpThird.setHorizontalTextPosition(SwingConstants.CENTER);

jlblLedDownThird = new JLabel("downledthird", new ImageIcon("/Users/Jack/Desktop/ledOff.png"), SwingConstants.CENTER);
jlblLedDownThird.setVerticalTextPosition(SwingConstants.BOTTOM);
jlblLedDownThird.setHorizontalTextPosition(SwingConstants.CENTER);


// Add the buttons and label to the panel.
jpnl.add(jbtnUpArrowFirst);
jpnl.add(jlblLedUpFirst);
jpnl.add(jbtnUpArrowSec);
jpnl.add(jlblLedUpSec);
jpnl.add(jbtnDownArrowFirst);
jpnl.add(jlblLedDownFirst);
jpnl.add(jbtnDownArrowSec);
jpnl.add(jlblLedDownSec);

jpnl2.add(jbtnUpArrowThird);
jpnl2.add(jlblLedUpThird);
jpnl2.add(jbtnDownArrowThird);
jpnl2.add(jlblLedDownThird);


ui.add(jpnl, BorderLayout.CENTER);
ui.add(jpnl2, BorderLayout.LINE_END);

JFrame jfrm = new JFrame("Use Two JPanels");
jfrm.setLocationByPlatform(true);
jfrm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jfrm.setContentPane(getUI());
jfrm.setMinimumSize(jfrm.getSize());
jfrm.pack();
jfrm.setVisible(true);

/*jbtnUpArrowFirst.addActionListener(e -> {
try {
test.send("ANTSW=VERT\r\n");

//if (test.recv().equalsIgnoreCase(""))

} catch (IOException e1) {
e1.printStackTrace();
}
});

jbtnDownArrowFirst.addActionListener(e -> {
try {
test.send("ANTSW=HORZ\r\n");
} catch (IOException e1) {
e1.printStackTrace();
}
});*/

}

public JComponent getUI() {
return ui;
}

public static void main(String args[]) {
// Create the frame on the event dispatching thread.
SwingUtilities.invokeLater(() -> {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
new PanelDemo();
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
});
}
}

最佳答案

在将所有组件添加到 JFrame 之前,您将调用 pack()setVisible()。将执行此操作的 block 移至构造函数的末尾。

此外,我的编译器无法在设置操作监听器的代码中的任何位置找到 test。我没有使用过 Java 8,所以我不知道那里出了什么问题,但是 Eclipse 应该能够正确编译它。

关于Java Swing GUI 似乎没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com