Tag: jpanel

如何在JFrame中设置glasspane的位置?

我正在尝试从框架的左侧创建一个菜单滑块。 它需要浮动在内容之上,我可以使用鼠标监听器来访问它(当鼠标靠近左边缘时打开菜单)。 好吧,我将我的GlassPane(我的JPanel)设置为setOpaue(false),它漂浮在内容之上。 但是玻璃板总是位于中心位置,我需要有可能移动它,滑动它,但没有运气。 setBounds和setLocation对我不起作用。 任何人都可以帮我这个吗? 代码的一部分: public class MYFrame extends JFrame { public MYFrame(){ this.setLayout(new BorderLayout()); this.add(panel1,BorderLayout.NORTH); this.add(panel2,BorderLayout.CENTER); this.add(panel3,BorderLayout.EAST); this.getRootPane().setGlassPane(new MyGlass()); this.getRootPane().getGlassPane().setVisible(true); this.setVisible(true); } public class MyGlass extends JPanel{ ImageIcon imageIcon = new ImageIcon(“BG.png”); JLabel label = new JLabel(imageIcon); public MyGlass(){ this.add(label); this.setOpaque(false); this.pack(); this.setVisible(true); } } }

paintComponent没有绘制到JPanel上

我正在做一个家庭作业,我应该制作一个程序,允许你绘制自定义的形状和线条,并在屏幕上移动它们。 最初我使用公共无效paint(g)进行绘画,但是当我打电话给重画时,形状闪烁。 因此,我切换到paintComponent(g) 。 然而,当我尝试绘制一个没有任何形状出现的形状时。 我相信这是因为它不是在JPanel上面绘画。 框架在3行BorderLayout有3个面板。 [Button JPanel] [Draw Box JPanel] [Coordinate Jpanel] 我想要绘制的面板是Draw Box面板,当然。 这是我目前的代码: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenuBar; import javax.swing.JPanel; public class Main extends […]

在JFrame中实现CardLayout并根据特定按钮切换卡片

我在下面发布了我的代码。 我有一个简单的任务,即创建一个可导航的GUI。 我花了几个小时研究如何完成这个,这就是我把它放在一起的代码。 最初我想要在没有任何布局或任何东西的情况下执行导航。 在用户点击欢迎面板上的“登录”按钮后,我需要显示主面板。 它显示欢迎卡就好了,但是当我到达validateLogin方法时(按下登录按钮时激活,并且成功登录后它应该显示卡中的主页面板)它只是保留在欢迎面板上,即使我已validation我的程序到达循环以通过system.out.Println()更改卡 请帮忙。 我整个星期六都试图通过试验和研究解决这个问题,但没有成功。 这对我来说是最后的手段,所以如果有人能告诉我我的缺点,那么我很乐意继续前进并修复它。 然后将该修复应用于我的程序所需的许多其他卡。 enter code here public class mainGUI implements ActionListener{ JFrame main; JPanel cards = new JPanel(new CardLayout()); CardLayout cl = (CardLayout)(cards.getLayout()); //Items for the welcome panel JPanel welcome = welcomePanel(); JButton login; JButton register; JTextField username; JTextField password; //home panel JPanel home = homePanel(); //WelcomePanel welcome […]

获取JSlider的输入和更改

我需要使用JSlider来实时输入,这意味着它将返回输入而不按任何按钮。 我有滑块的这段代码: JPanel panel = new JPanel(); JSlider js = new JSlider(JSlider.VERTICAL, 0, 20, 10); js.setMajorTickSpacing(2); js.setPaintTicks(true); Hashtable labelTable = new Hashtable(); labelTable.put(new Integer(js.getMinimum()), new JLabel(“x0”)); labelTable.put(new Integer((js.getMinimum() + js.getMaximum()) / 2), new JLabel(“x1”)); labelTable.put(new Integer(js.getMaximum()), new JLabel(“x2”)); js.setLabelTable(labelTable); js.setPaintLabels(true); panel.add(js); int result = JOptionPane.showConfirmDialog(null, panel, “choose size”, JOptionPane.YES_OPTION); 甚至可以这样做吗? 我以为使用actionListener但我没有成功。

如何在JComponent或Jpanel上绘制多个形状?

我正在尝试构建Paint应用程序,而我在DrawingArea类中做错了什么。 问题是当我尝试绘制第二个形状时,第一个形状或图形是自动删除所以我需要一些关于如何解决这个问题的想法。所有答案都可以接受。 感谢帮助。 DrawingArea.class代码的一部分: @Override // GETTING FIRST (STARTING) COORDINATE WHEN THE MOUSE PRESSED public void mousePressed(MouseEvent e) { oldX = e.getX(); oldY = e.getY(); repaint(); } @Override // GETTING RELEASED COORDINATE TO DRAW LINE. public void mouseReleased(MouseEvent e) { lastX = e.getX(); lastY = e.getY(); repaint(); } public void mouseClicked(MouseEvent e) { clickedX = […]

如何将滚动条添加到面板?

我需要帮助。 我有一个面板,可能需​​要宽1000px。 我需要添加许多不同大小的按钮(我添加了流程布局,它工作正常)。 问题是我在屏幕上有高度示例500px但是当我添加按钮面板时有更大的尺寸。 如何将滚动条添加到面板?

如何在java中设置JPanel的大小

我的java代码中有一个JPanel,我想设置它的大小,我使用了JPanel.setSize(500,500); 和JPanel.setSize(new Dimension(500,500)); 但两者都不起作用。 请告诉我如何设置JPanel的大小?

在java中使用其他类中的变量从其他文件到另一个类

有两个玩家将在JTextFields中输入他们的名字。 我想要做的是,我从Enter.java中的Welcome框架输入的数据将被传输到ActualGame.java中的JLabel。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import static javax.swing.JFrame.EXIT_ON_CLOSE; public class Enter extends JFrame implements ActionListener { private String one = “”; private String two = “”; private JTextField txtOne = new JTextField(); private JTextField txtTwo = new JTextField(); public Enter() { this.setLayout(new FlowLayout()); setDefaultCloseOperation(EXIT_ON_CLOSE); setTitle(“Welcome”); setSize(200, 130); setVisible(true); setResizable(false); setLocationRelativeTo(null); add(txtOne); add(txtTwo); […]

BorderLayout只显示一个对象

我决定编写一个小型Java程序来试验BorderLayout,因为我正在开发一个Java游戏,我需要同时将2个对象放在一个JFrame中,我问的每个人都说我需要BorderLayout这样做。 所以我编写的Java程序应该在JFrame上放置一个JButton,并且放置一个图形组件(在这种情况下是一个矩形)。 问题是,只有按钮显示,如下面的图像链接所示: http://prntscr.com/3m5ek6 由于我的低声誉统计数据,我无法发布实际图像。 这是代码: main.java – >主方法类+ JFrame / JPanel / JButton构造函数 import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class main { public static void main(String[] args) { Infout m = new Infout(); JFrame f = new JFrame(); JPanel start = new JPanel(); JPanel start2 = new JPanel(); start.add(m); start2.add(new JButton(“Hi”)); […]

CardLayout的父容器/面板

如何在CardLayout获取任何面板的“容器”面板。 也就是说,如果面板是另一个“容器”面板中的卡片,那么如何从卡片中引用这个“容器”面板? 这就是我在做的事: – public class LogInPanel extends javax.swing.JPanel implements ActionListener{ /** * Creates new form Panel2 */ private JPanel parentPanel; private CardLayout c1=null; public LogInPanel() { initComponents(); //c1=new CardLayout(); parentPanel=(JPanel)(SwingUtilities.getAncestorOfClass(this.getClass(), this)); c1=(CardLayout)(parentPanel.getLayout()); submitLogin.addActionListener(this); } …