2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Глюки при отображении таблицы в JavaFX
Сообщение10.06.2011, 12:26 
Создаю таблицу, как матрицу SwingTextField. При откритии приложения ее нет. Если свернуть и развернуть, то все появляется. Но вводимий текст не отображается при вводе, снова нужно свернуть развернуть окно. Подкажите проблему пожалуйста.
Код класа
public var tab_man:TabManager;
public var head:String[];
public var rows:Integer;
public var cols:Integer;
public var edit=false;
public var access:Integer;
public var is_editing:Boolean=false;
override var hover=false;

public var y=2;
public var x=2;
public var cell_spacing = 5; //spaces beetwin cells
public var cnt_man:ContentManager;
public var width=700;
public var height=200;
override var focusTraversable = false;

public var scrollBar:ScrollBar;
public var row_lst:HBox[];
public var listView:VBox;

override var onKeyPressed = function(e)
{
if(e.code == KeyCode.VK_UP) {
scrollBar.adjustValue(-1);
} else if(e.code == KeyCode.VK_DOWN) {
scrollBar.adjustValue(1);
}
}
//здесь были гетеры и сетеры
//таблица - ето масив HBox-ов
override public function create():Node
{
tab_man=cnt_man.app.db.getManager();//ето не важно
tab_man.list_view=this;
tab_man.cont_manager=cnt_man;
tab_man.access=access;
rows=tab_man.getRows()+1; //все ето поредиляет
cols=tab_man.getCols();
head=tab_man.getHead(); //поведение и данние
var it:Node[];
var rc:String[];
var c_id:String;
//создаю заголовок
for(j in [0..cols-1])
{
it[j]=SwingTextField
{
columns: 10
text: head[j]
editable: false
visible: true
width: bind (width-cell_spacing*(cols-1))/cols
}
}
row_lst[0]=HBox
{
spacing: cell_spacing
content: it
}
//создаю остальное
for(i in [1..rows-1])
{
rc=tab_man.fillRow();
if(rc!=null) c_id=tab_man.getID();
if(rc==null)
{
rc=for(k in [0..<cols]) new String("");
}
it[cols-1]=tab_man.getLastColumn();
for(j in [0..cols-2])
{
it[j]=SwingTextField
{
columns: 10
text: rc[j];
editable: edit
disable: false;
visible: true
width: bind (width-cell_spacing*(cols-1))/cols
id: c_id
action: function(){println("hello people");}
};
}
row_lst[i]=HBox
{
spacing: cell_spacing
content: it
}
}
listView = VBox
{
spacing: cell_spacing
layoutX: x
layoutY: bind y-(scrollBar.value)
content: bind row_lst
};
scrollBar=ScrollBar
{
layoutX: bind (width-scrollBar.width+x)
layoutY: y
min: 0
max: bind Math.max((listView.boundsInLocal.height - height), 0)
vertical: true
height: bind height
blockIncrement: bind height
focusTraversable: false
blocksMouse: false
};

return Group {
content: [
Group {
content: bind listView
layoutX: x
layoutY: y
clip:Rectangle
{
y: y
x: x
width: bind width
height: bind height
}
},
scrollBar
]
}
}

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group