- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
任何人都可以帮助解决这个问题我正在尝试创建一个 JToolBar 并且我希望它的所有组件的大小和位置都是固定的。我尝试了几种不同的布局管理器,但它们都会在组件所在的框架重新调整大小时调整组件的中心和/或调整其大小。
这是一个使用 GridbagLayout 的例子,我也使用了默认的布局管理器 toolbar.add(component)
方法,但结果是一样的:'
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.*;
public class ToolBarTest extends JFrame
{
private JToolBar toolbar;
private JPanel mainPanel;
private JPanel toolBarPanel;
private JButton aButton;
private JCheckBox aCheckBox;
private JList aList;
private Box toolbarBox;
private GridBagConstraints toolbarConstraints;
private GridBagLayout toolbarLayout;
private JLabel shapeLabel;
private JComboBox<ImageIcon> shapeChooser;
private JLabel colorLabel;
private JComboBox colorChooser;
private String colorNames[] = { "Black" , "Blue", "Cyan", "Dark Gray",
"Gray", "Green", "Light Gray", "Magenta", "Orange",
"Pink", "Red", "White", "Yellow", "Custom" };
private String shapeNames[] = { "Line", "Oval", "Rectangle",
"3D Rectangle","Paint Brush", "Rounded Rectangle" };
public ToolBarTest()
{
setLayout( new BorderLayout() );
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setSize( 500, 500 );
add( createToolBar(), BorderLayout.PAGE_START );
setVisible( true );
}
public void addToToolbar( Component component, int row, int column )
{
toolbarConstraints.gridx = column;
toolbarConstraints.gridy = row;
toolbarConstraints.anchor = GridBagConstraints.WEST;
toolbarConstraints.fill = GridBagConstraints.NONE;
toolbarConstraints.weightx = 0;
toolbarConstraints.weighty = 0;
toolbarConstraints.gridwidth = 1;
toolbarConstraints.gridheight = 1;
toolbarLayout.setConstraints( component, toolbarConstraints );
toolbar.add( component );
}// end addToToolbar
public final JToolBar createToolBar()
{
toolbarLayout = new GridBagLayout();
toolbarConstraints = new GridBagConstraints();
// create the tool bar which holds the items to draw
toolbar = new JToolBar();
toolbar.setBorderPainted(true);
toolbar.setLayout( toolbarLayout );
toolbar.setFloatable( true );
shapeLabel = new JLabel( "Shapes: " );
addToToolbar( shapeLabel, 0, 1 );
String iconNames[] = { "PaintImages/Line.jpg",
"PaintImages/Oval.jpg", "PaintImages/Rect.jpg",
"PaintImages/3DRect.jpg","PaintImages/PaintBrush.jpg",
"PaintImages/RoundRect.jpg"};
ImageIcon shapeIcons[] = new ImageIcon[ shapeNames.length ];
// create image icons
for( int shapeButton = 0; shapeButton < shapeNames.length; shapeButton++ )
{
shapeIcons[ shapeButton ] =
new ImageIcon( iconNames[ shapeButton ] );
}// end for
shapeChooser =
new JComboBox< ImageIcon >( shapeIcons );
shapeChooser.setSize( new Dimension( 50, 20 ));
shapeChooser.setPrototypeDisplayValue( shapeIcons[ 0 ] );
shapeChooser.setSelectedIndex( 0 );
addToToolbar( shapeChooser, 0, 2 );
colorLabel = new JLabel( "Colors: " );
addToToolbar( colorLabel, 0, 3 );
colorChooser = new JComboBox( colorNames );
addToToolbar( colorChooser, 0, 4 );
return toolbar;
}// end createToolBar
public static void main( String args[] )
{
new ToolBarTest();
}// end main
}// end class ToolBarTest'
最佳答案
如前所述:JToolBar 的默认布局是一个 BoxLayout,它尊重组件的 maxSize。 JComboBox 没有合理的最大值,因此您需要子类化并覆盖 getMaxSize:
protected JComboBox createCombo(Object[] shapeIcons) {
return new JComboBox( shapeIcons ) {
@Override
public Dimension getMaximumSize() {
return getPreferredSize();
}
};
}
// usage (keep the default layoutManager of the toolbar)
shapeChooser = createCombo(shapeIcons);
toolBar.add(shapeChooser);
...
colorChooser = createCombo( colorNames );
toolBar.add(colorChooser)
关于java - 有谁知道如何布局不移动或重新调整放置在其中的任何组件的大小的 JToolBar ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13345640/
我试图将 JMenu 和 JToolbar 放在 JFrame 的 NORTH 位置,但它们相互重叠。有什么办法可以将两者都放在 NORTH 位置吗? 最佳答案 不要尝试将两个组件添加到框架的北部。
我有一个简单的绘图应用程序。我需要在左侧添加一个菜单和一个工具栏。现在,我不再使用简单的 JFrame,而是创建一个扩展 JFrame 的简单类。我能够按照一些在线示例添加菜单,但不知道如何添加 JT
我有一个 JToolBar 并且喜欢对项目重新排序。 例如,我有一个“新建”、一个“打开”和一个“保存”按钮。 我在不同的线程中添加这些按钮,因此顺序是随机的。 不幸的是,顺序是“保存”、“打开”、“
我创建了一个 JToolbar 组件并将其添加到框架中。 工具栏使用 BorderLayout。 我向工具栏添加了三个按钮,它们显示得很好,只是我希望将它们添加到工具栏的右侧。右对齐。 然后每当我向工
如何在一个屏幕上放置多个 JToolBar 并允许它们 float 。通常我们把JToolBar放在一个有BorderLayout的容器上。如果我们将所有 JToolBar 放在一个面板上,然后将面板
Video的问题。 问题 1:无论我将其放到哪个位置,从左侧拖动任何 JToolBar 都会插入到最右侧。 问题 2:将最右边的 JToolBar 拖动到任何位置都不会产生任何变化,如视频中所示。 期
JToolBar 可以从框架或面板附加和分离到一个单独的窗口中。所以我想将它用作一组紧急命令和指示器。问题是分离时如果你最小化它所属的框架,工具栏也会最小化,我希望它留在屏幕上。 最佳答案 the
我有一个 java 应用程序,它需要动态添加包含在 jpanels 中的按钮集。例如:- . . JButton button1 = new JButton("Button_1"); JButton
我有一个 JToolbar。我想知道是否有办法阻止它水平移动。我宁愿它只垂直。我确实希望它漂浮。 我曾尝试制作属性更改监听器并将方向更改回垂直但没有成功。谢谢 最佳答案 只需使用默认 float 布局
有没有办法在现有面板的其余组件上绘制停靠的 JToolBar? 基本上,我希望在停靠工具栏时(从 float 位置)不干扰我的其他组件和现有布局。 简单的例子,只是为了开始.. public clas
我在java中使用netbeans创建了全屏jform。我需要创建全屏宽度大小的 jtoolbar。我如何做到这一点? 我使用此代码创建全屏尺寸 jform/jform 调整大小 Dimension
我想在Java中为JToolBar设置渐变背景色。我能够为 JPanel 设置此渐变效果。 谢谢,萨蒂什 最佳答案 与任何其他 Swing 组件一样,您必须重写其 paintComponent(...
我正在编写一个头部带有工具栏的程序。唯一的问题是我无法在工具栏中的组件(即日期选择器)上设置正确的大小。 screenshot 所以我想调整工具栏中日期选择器的大小。我该如何解决这个问题? 最漂亮的选
任何人都可以帮助解决这个问题我正在尝试创建一个 JToolBar 并且我希望它的所有组件的大小和位置都是固定的。我尝试了几种不同的布局管理器,但它们都会在组件所在的框架重新调整大小时调整组件的中心和/
我需要添加一个简单的间隙/空间/边距,以便在这两个按钮之间留出空间。不幸的是我无法让它发挥作用。谁能给我一些建议吗? 它基于BorderLayout,按钮位于JToolBar 最佳答案 包含这些按钮的
我使用 Java Swing (Windows Builder Pro) 为个人项目创建了一个 GUI,它有一个 JToolBar。我在工具栏中的按钮之间添加了分隔符。 JButton btnSave
私有(private) JButton btnTask = new JButton();...TaiGlobal.taskbar.add(btnTask); 如何从 JToolBar 中删除 btnT
如何消除 JToolBar 中控件之间的间隙?我希望 JToolBar 中的控件之间没有可用空间。 编辑:我错了。没有可用空间。问题是由仅带有图标的 JButton(位于 JToolBar 中)引起的
我有一个带有JToggleButtons 的水平JToolbar。由于某种原因,它被放置在一个高度更大的容器中。我的 JToggleButtons 只使用它们需要的空间,在它们下方和下方留下丑陋的空白
我正在尝试在 JToolBar 中对齐 JToggleButton。我希望按钮垂直向左对齐。我的代码如下: JToolBar toolbar = new JToolBar(); toolbar.set
我是一名优秀的程序员,十分优秀!