Tag: jpanel

BoxLayout拒绝承认JButton的首选大小

我一直致力于一个应该模拟赌博游戏的小项目。 不幸的是,我在使用BoxLayout时遇到了一些奇怪的问题。 据我所知, LayoutManager通常会尊重任何组件的首选大小。 但是,在下面的代码中, BoxLayout没有。 到目前为止,这是我的代码: import java.awt.*; import javax.swing.*; public class Main { public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame(“Suit-Up”); frame.setContentPane(makeGUI()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(900,450); frame.setLocationRelativeTo(null); frame.setResizable(false); frame.setVisible(true); } public static JPanel makeGUI() { JPanel main = new JPanel(); main.setMinimumSize(new Dimension(900,450)); main.setBackground(Color.red); JPanel infoPanel = new JPanel(); infoPanel.setLayout(new BoxLayout(infoPanel, BoxLayout.LINE_AXIS)); […]

Java GridBagConstraints gridx和gridy无法正常工作?

我试图使用gridx和gridy约束来定位我的按钮。 但他们不工作! 如果我更改gridx和gridy变量,则没有任何反应。 如果我将填充更改为GridBagConstraints为NONE ,它仍然无效。 我在这里错过了什么吗? import java.awt.*; import javax.swing.*; public class Window extends JFrame{ private static final long serialVersionUID = 1L; JFrame frame = new JFrame(“GUI”); JTextField username = new JTextField(20); public void CreateWindow(){ JPanel pane = new JPanel(); pane.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.NONE; JButton button = new JButton(“Button […]

如何突出(均匀视觉选择,绘制透明叠加)JPanel?

许多自定义Swing组件都是由JPanel 。 有时这些组件需要是可选择的。 怎样才能让JPanel看起来如此? 它应该像其他项目一样被选择,如菜单项或JTable单元格。 即整个JPanel应该用透明蓝色覆盖。 这将是非常好的,如果这与L&F /主题中的其他项目完全一样, 可能吗?

在没有布局管理器的情况下将JScrollPane添加到JPanel

在开始之前,我知道不使用布局管理器是个坏主意,通常我会使用布局管理器,但是,我也会根据窗口的大小自动重新resize并重新定位。 此外,我正在开发的程序仅用于在整个生命周期内在一台机器上运行。 请不要因为缺少布局管理器而向我投票,我发现它是我需要的特定程序。 对于我的问题,我在stackoverflow上发现了类似的post,但从未实现过解决方案。 我正在向我的JPanel添加动态数量的JLabels ,我注意到当不使用布局管理器时,滚动条不起作用。 这是我的初始化代码的简化版本。 JPanel mypanel = new JPanel(); mypanel.setLayout(null); mypanel.setSize(800,450); mypanel.setForeground(Color.WHITE); mypanel.setBackground(Color.BLACK); scrollablePanel = new JScrollPane(mypanel); scrollablePanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrollablePanel.setPreferredSize(new Dimension(800,300)); scrollablePanel.setSize(800,300); scrollablePanel.setLocation(250,156); myContainer.add(scrollablePanel); myContainer将成为容器(也没有布局管理器)。 稍后将JLabels添加到JPanel中: enter code here mypanel.add(label1); 为setForeground和setBackground等标签设置了一些基本设置后。 不幸的是,在运行时,滚动条看起来好像不需要(见图) http://sofzh.miximages.com/java/zp0QKGG.png 图像中显示的表格文本由多个JLabels 。 如果在不使用布局管理器的情况下无法解决问题,我将切换到BoxLayout,我只是希望有一个解决方案。

我在调整Jframe大小时如何停止自动重绘()

我还在学习Java,如果有人能帮助我,我会很开心! 抱歉英语不好,我是西class牙语! 我正在制作一个平铺游戏,游戏使用经典的“游戏循环”,将引擎限制为60fps循环睡眠,然后调用repaint(); 这很好用! 但.. 问题是在调整JFrame大小或最大化时调用重绘事件! 例如,当JFrame最大化/resize时,游戏以10000fps渲染,但是当它们没有时,游戏以我设置的速度渲染,因此有一种方法可以禁用自动重绘并使其仅在“component.repaint()时工作” “从我的代码中调用? 这里的问题不是“游戏循环”,问题是当重新resize/最大化时,重绘被称为自动渲染更多fps的游戏! public class Handling { static private int fps=0; static private int fpsfinal=0; static int frames = 60; static int frames_skip = 1000 / frames; static long ticknext = GetTickCount(); static long ticksleep = 0; public static void Run() { for(;;){ Main.getDevice().repaint(); fps++; ticknext += frames_skip; ticksleep […]

Java同时淡入和淡出两个JPanel

我有一个JPanels列表,我希望将其显示为“幻灯片放映”,其中一个JPanel淡出,列表中的下一个JPanel淡入。这是我正在摆弄的代码: public float opacity = 0f; private Timer fadeTimer; private boolean out; public void fadeIn() { out = false; beginFade(); } public void fadeOut () { out = true; beginFade(); } private void beginFade() { fadeTimer = new javax.swing.Timer(75,this); fadeTimer.setInitialDelay(0); fadeTimer.start(); } public void actionPerformed(ActionEvent e) { if (out) { opacity -= .03; if(opacity 1) […]

无法将3个JPanel添加到主面板

我有3个JPanels,我想将它们全部放在一个JPanel中。 我使用GridBagLayout作为主面板。 但是只添加了一个面板。 为什么会这样? gblayout=new GridBagLayout(); gbc=new GridBagConstraints(); panel1Customizer(); panel2customizer(); panel3Customizer(); setLayout(gblayout); gbc.fill=GridBagConstraints.HORIZONTAL; gbc.anchor=GridBagConstraints.NORTHWEST; gbc.weightx=1; gbc.weighty=1; gbc.gridheight=GridBagConstraints.REMAINDER; add(panel1, gbc); add(panel2, gbc); gbc.gridwidth=GridBagConstraints.REMAINDER; add(panel3, gbc); 自定义程序方法是将项添加到这些面板中的方法。

BorderLayout无法正确显示

我想要一个JFrame,左边和右边有一个边框,颜色为黑色,宽度为withfOfJFrame / 10。 现在,我尝试它看起来像这样: JFrame f = new JFrame(); f.setSize(800, 600); f.setLayout(new BorderLayout()); JPanel leftBorder = new JPanel(); JPanel rightBorder = new JPanel(); leftBorder.setBackground(Color.black); rightBorder.setBackground(Color.black); leftBorder.setSize(f.getWidth()/10, f.getHeight()); rightBorder.setSize(f.getWidth()/10, f.getHeight()); JPanel center = new JPanel(); center.setBackground(Color.red); f.add(leftBorder, BorderLayout.WEST); f.add(center, BorderLayout.CENTER); f.add(rightBorder, BorderLayout.EAST); f.setVisible(true); 这会在左侧和右侧添加黑色边框,但该边框具有固定大小,并且在调整窗口大小时不会重新计算。 大小甚至不是800的1/10(JFrame的起始宽度)。 我究竟做错了什么? 或者甚至有更好的方法来做到这一点?

在JFrame中切换JPanel

现在我知道有很多这方面的问题,我已经阅读了十几个。 但我刚刚撞墙,我无法做出正面或反面。 inheritance人我的问题。 我有3个Panel类。 ConfigurePanel.java ConnectServerPanel.java RunServerPanel.java 和我的JFrame类 StartUPGUI.java 这是在启动时初始化的内容 private void initComponents() { jPanel1 = new javax.swing.JPanel(); startUp = new sjdproject.GUI.ConfigurePanel(); runServer = new sjdproject.GUI.RunServerPanel(); serverConnect = new sjdproject.GUI.ConnectServerPanel(); setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); jPanel1.setLayout(new java.awt.CardLayout()); jPanel1.add(startUp, “card2”); jPanel1.add(runServer, “card4”); jPanel1.add(serverConnect, “card3”); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(27, Short.MAX_VALUE) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 419, javax.swing.GroupLayout.PREFERRED_SIZE) […]

我正在尝试将我添加到面板中的JButton数组添加到我的JFrame中,但没有任何内容出现

这是我的代码:由于某种原因,我的屏幕上不会出现任何内容,但我不知道为什么,我相信我正确地初始化并添加它。 帮帮我? import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class main implements MouseListener{ final int WIDTH = 800, HEIGHT = 500, BOARD_WIDTH = 10, BOARD_HEIGHT = 10; private JButton [][]buttons = new JButton[BOARD_WIDTH][BOARD_HEIGHT]; public static void main(String[] args) { // TODO Auto-generated method stub new main(); } […]