Java自定义控件与gui设计器中呈现的控件不同
我已经创建了一个自定义控件。它功能正常,但渲染不正确。 可以看出,设计师(netbeans)将所有东西都整齐地打包。但是,在运行的程序中有空格,按钮上的文本不会显示 这是代码Java自定义控件与gui设计器中呈现的控件不同,java,swing,awt,Java,Swing,Awt,我已经创建了一个自定义控件。它功能正常,但渲染不正确。 可以看出,设计师(netbeans)将所有东西都整齐地打包。但是,在运行的程序中有空格,按钮上的文本不会显示 这是代码 public class AllocateSpinner extends javax.swing.JPanel { /** * Creates new form AllocateSpinner */ public AllocateSpinner() { initComponents();
public class AllocateSpinner extends javax.swing.JPanel {
/**
* Creates new form AllocateSpinner
*/
public AllocateSpinner() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
Min = new java.awt.Button();
Decrement = new java.awt.Button();
NumberEdit = new javax.swing.JTextField();
Increment = new java.awt.Button();
Max = new java.awt.Button();
setMinimumSize(new java.awt.Dimension(100, 23));
setPreferredSize(new java.awt.Dimension(100, 23));
setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.X_AXIS));
Min.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N
Min.setLabel("|<");
Min.setMaximumSize(new java.awt.Dimension(15, 32767));
Min.setMinimumSize(new java.awt.Dimension(15, 23));
Min.setPreferredSize(new java.awt.Dimension(15, 23));
Min.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
MinActionPerformed(evt);
}
});
add(Min);
Decrement.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N
Decrement.setLabel("<<");
Decrement.setMaximumSize(new java.awt.Dimension(15, 32767));
Decrement.setMinimumSize(new java.awt.Dimension(15, 23));
Decrement.setPreferredSize(new java.awt.Dimension(15, 23));
Decrement.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
DecrementActionPerformed(evt);
}
});
add(Decrement);
NumberEdit.setText("0");
NumberEdit.setMinimumSize(new java.awt.Dimension(20, 23));
NumberEdit.setPreferredSize(new java.awt.Dimension(20, 23));
NumberEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
NumberEditActionPerformed(evt);
}
});
add(NumberEdit);
Increment.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N
Increment.setLabel(">>");
Increment.setMaximumSize(new java.awt.Dimension(15, 32767));
Increment.setMinimumSize(new java.awt.Dimension(15, 23));
Increment.setPreferredSize(new java.awt.Dimension(15, 23));
Increment.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
IncrementActionPerformed(evt);
}
});
add(Increment);
Max.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N
Max.setLabel(">|");
Max.setMaximumSize(new java.awt.Dimension(15, 32767));
Max.setMinimumSize(new java.awt.Dimension(15, 23));
Max.setPreferredSize(new java.awt.Dimension(15, 23));
Max.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
MaxActionPerformed(evt);
}
});
add(Max);
}// </editor-fold>
private void MinActionPerformed(java.awt.event.ActionEvent evt) {
setValue(_MinValue);
}
private void DecrementActionPerformed(java.awt.event.ActionEvent evt) {
setValue(_Value - _ValueStep);
}
private void IncrementActionPerformed(java.awt.event.ActionEvent evt) {
setValue(_Value + _ValueStep);
}
private void MaxActionPerformed(java.awt.event.ActionEvent evt) {
setValue(_MaxValue);
}
private void NumberEditActionPerformed(java.awt.event.ActionEvent evt) {
try {
setValue(Integer.parseInt(NumberEdit.getText()));
} catch (NumberFormatException e) {
NumberEdit.setText(_Formatter.format(_Value));
}
}
// Variables declaration - do not modify
private java.awt.Button Decrement;
private java.awt.Button Increment;
private java.awt.Button Max;
private java.awt.Button Min;
private javax.swing.JTextField NumberEdit;
// End of variables declaration
private int _Value = 0;
private int _MinValue = 0;
private int _MaxValue = 100;
private int _ValueStep = 1;
private NumberFormat _Formatter = NumberFormat.getIntegerInstance();
/**
* Sets the value. If the value is less than MinValue or greater than MaxValue the value is set to the limit.
* @param value The value to set.
*/
public void setValue(int value) {
if (_Value != value) {
int ov = _Value;
value = Math.max(_MinValue, value);
value = Math.min(_MaxValue, value);
_Value = value;
NumberEdit.setText(_Formatter.format(_Value));
firePropertyChange("Value", ov, _Value);
}
}
/**
* Get the current value.
* @return The current value.
*/
public int getValue() {
return _Value;
}
/**
* Sets the minimum value. If the current value is less than the new minimum value the current value is set to minimum.
* @param value The new minimum value to set.
*/
public void setMinValue(int value) {
if (_MinValue != value) {
int ov = _MinValue;
value = Math.min(_MaxValue, value);
_MinValue = value;
firePropertyChange("MinValue", ov, _MinValue);
if (_Value < _MinValue) {
setValue(_MinValue);
}
}
}
/**
* Get the minimum value that can be set.
* @return The minimum value.
*/
public int getMinValue() {
return _MinValue;
}
/**
* Set the maximum value. If the current value is greater than the new maximum the current value is set to maximum.
* @param value The new Maximum value.
*/
public void setMaxValue(int value) {
if (_MaxValue != value) {
int ov = _MaxValue;
value = Math.max(_MinValue, value);
_MaxValue = value;
firePropertyChange("MaxValue", ov, _MaxValue);
if (_Value > _MaxValue) {
setValue(_MaxValue);
}
}
}
/**
* Get the maximum value that can be set.
* @return The maximum value.
*/
public int getMaxValue() {
return _MaxValue;
}
/**
* Set the amount that the number will be changed on increment or decrement operations.
* @param value The step amount.
*/
public void setValueStep(int value) {
if (_ValueStep != value) {
int ov = _ValueStep;
_ValueStep = value;
firePropertyChange("ValueStep", ov, _ValueStep);
}
}
/**
* Get the amount that the value changes on increment or decrement operations.
* @return The step amount.
*/
public int getValueStep() {
return _ValueStep;
}
/**
* Set the number formatter to use.
* @param formater The formatter to use.
*/
public void setFormatter(NumberFormat formater) {
if (_Formatter != formater) {
NumberFormat of = _Formatter;
_Formatter = formater;
NumberEdit.setText(_Formatter.format(_Value));
this.firePropertyChange("Formatter", of, _Formatter);
}
}
/**
* Get the formatter currently being used.
* @return The NumberFormat currently being used.
*/
public NumberFormat getFormatter() {
return _Formatter;
}
}
公共类AllocateSpinner扩展了javax.swing.JPanel{
/**
*创建新的表单分配器
*/
公共分配器内部(){
初始化组件();
}
/**
*从构造函数中调用此方法来初始化表单。警告:不要修改此代码。此方法的内容始终为
*由表单编辑器重新生成。
*/
@抑制警告(“未选中”)
//
私有组件(){
Min=newjava.awt.Button();
Decrement=newjava.awt.Button();
numberdit=newjavax.swing.JTextField();
Increment=newjava.awt.Button();
Max=newjava.awt.Button();
setMinimumSize(新java.awt.Dimension(100,23));
setPreferredSize(新java.awt.Dimension(100,23));
setLayout(新的javax.swing.BoxLayout(这个javax.swing.BoxLayout.X_轴));
Min.setFont(新的java.awt.Font(“Dialog”,0,10));//NOI18N
最小设置标签(“| |”);
Max.setMaximumSize(新java.awt.Dimension(1532767));
Max.setMinimumSize(新java.awt.Dimension(15,23));
Max.setPreferredSize(新java.awt.Dimension(15,23));
Max.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行的最大值(evt);
}
});
添加(最大值);
}//
私有void MinActionPerformed(java.awt.event.ActionEvent evt){
设置值(_MinValue);
}
私有无效递减执行(java.awt.event.ActionEvent evt){
设置值(_值-_值步骤);
}
私有void IncrementActionPerformed(java.awt.event.ActionEvent evt){
设置值(_值+_值步长);
}
私有void MaxActionPerformed(java.awt.event.ActionEvent evt){
设置值(_MaxValue);
}
私有void NumberEditActionPerformed(java.awt.event.ActionEvent evt){
试一试{
setValue(Integer.parseInt(numberdit.getText());
}捕获(数字格式){
numberdit.setText(_Formatter.format(_Value));
}
}
//变量声明-不修改
私有java.awt.Button减量;
私有java.awt.Button增量;
private java.awt.Button Max;
私有java.awt.Button Min;
私有javax.swing.JTextField numberdit;
//变量结束声明
私有int_值=0;
私有int_MinValue=0;
私有int_MaxValue=100;
私有int _ValueStep=1;
私有NumberFormat_Formatter=NumberFormat.getIntegerInstance();
/**
*设置值。如果该值小于MinValue或大于MaxValue,则将该值设置为限制。
*@param value要设置的值。
*/
公共无效设置值(int值){
如果(_值!=值){
int ov=_值;
value=Math.max(_MinValue,value);
value=Math.min(_MaxValue,value);
_价值=价值;
numberdit.setText(_Formatter.format(_Value));
火属性变化(“值”,ov,_值);
}
}
/**
*获取当前值。
*@返回当前值。
*/
public int getValue(){
返回_值;
}
/**
*设置最小值。如果当前值小于新的最小值,则当前值设置为最小值。
*@param value要设置的新最小值。
*/
公共void setMinValue(int值){
如果(_MinValue!=值){
int ov=_MinValue;
value=Math.min(_MaxValue,value);
_最小值=最小值;
火属性变化(“MinValue”,ov,_MinValue);
如果(_值<_最小值){
设置值(_MinValue);
}
}
}
/**
*获取可以设置的最小值。
*@返回最小值。
*/
public int getMinValue(){
返回最小值;
}
/**
*设置最大值。如果当前值大于新的最大值,则将当前值设置为最大值。
*@param value新的最大值。
*/
公共void setMaxValue(int值){
如果(_MaxValue!=值){
int ov=_最大值;
value=Math.max(_MinValue,value);
_最大值=最大值;
firePropertyChange(“MaxValue”,ov,_MaxValue);
如果(\u值>\u最大值){
设置值(_MaxValue);
}
}
}
/**
*获取可以设置的最大值。
*@返回最大值。
*/
public int getMaxValue(){
返回_MaxValue;
}
/**
*设置在递增或递减操作中更改数字的量。
*@param值为步进量。
*/
public void setValueStep(int值){
如果(_ValueStep!=值){
int ov=_ValueStep;
_ValueStep=值;
火属性更改(“ValueStep”,ov,_ValueStep);
}
}
/**
*获取值在递增或递减操作中更改的量。
*@返回步数。
*/
public int getValueStep(){
返回值步骤;
}
/**
*设置要使用的数字格式化程序。
*@param formatter要使用的格式化程序。
*/
公共无效设置格式化程序(NumberFormat格式化程序){
if(_格式化程序!=格式化程序){
NumberFormat of=\u格式化程序;
_格式化程序=格式化程序;
numberdit.setText(_Formatter.format(_Value));
此.firePropertyChange(“格式化程序”,of,_Formatter);
}
}
/**
*获取当前正在使用的格式化程序。
*@返回数字格式货币