Посмотрите на этот пример:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,$http) {
var getJoke = function(){
return $http.get('http://api.icndb.com/jokes/random').then(function(res){
return res.data.value;
});
}
getJoke().then(function(res) {
console.log(res.joke);
});
});
Как вы можете видеть, getJoke
возвращает разрешенное обещание (оно разрешено при возврате res.data.value
). Таким образом, вы ждете, пока запрос $ http.get не будет завершен, а затем выполнится console.log (res.joke) (как обычный асинхронный поток).
Это plnkr:
Вы можете попробовать следующее:
public void resizeColumnWidth(JTable table) {
final TableColumnModel columnModel = table.getColumnModel();
for (int column = 0; column < table.getColumnCount(); column++) {
int width = 15; // Min width
for (int row = 0; row < table.getRowCount(); row++) {
TableCellRenderer renderer = table.getCellRenderer(row, column);
Component comp = table.prepareRenderer(renderer, row, column);
width = Math.max(comp.getPreferredSize().width +1 , width);
}
if(width > 300)
width=300;
columnModel.getColumn(column).setPreferredWidth(width);
}
}
[/g1]
Это нужно выполнить перед методом изменения размера. Если у вас есть:
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
[/g2]
Нет возможности автоматически изменять размер одного столбца больше другого.
Возможно, вы можете сделать что-то вроде:
tca = new TableColumnAdjuster( table, 0 );
tca.adjustColumns();
TableColumnModel tcm = table.getColumnModel();
TableColumn tc = tcm.getColumn(1);
tc.setWidth(tc.getWidth() + 25);
Это позволит вам добавить дополнительное пространство для столбец 1. Это дополнительное пространство будет добавлено только при первом отображении таблицы.
Другой вариант заключается в использовании:
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
Это позволит выделить дополнительное пространство пропорционально каждому столбцу .
setAutoResizeMode () сообщит вашей таблице, как изменить размер, вы должны дать ему попробовать все возможные варианты, чтобы увидеть различия. В моем случае я хотел бы конкретно изменить размер двух столбцов и позволить ему решить, как настроить все остальные .
jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
TableColumnModel colModel=jTable1.getColumnModel();
colModel.getColumn(1).setPreferredWidth(25);
colModel.getColumn(2).setPreferredWidth(400);
Вы можете сделать это:
JPanel jp = new JPanel();
jp.add(table);
jp.setLayout(new GridLayout(1,1)); /* little trick ;) and believe me that this step is important to the automatic all columns resize! A import is also needed for using GridLayout*/
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); // this is obvius part