我读了这篇https://bugs.openjdk.java.net/browse/JDK-8102128但是我还没有在JavaFX 8的Api中找到一些东西.在TableView中有什么方法可以防止重新排序?
我在互联网上搜索了很多解决这个问题的方法,但我无法弄明白.我正在尝试在表格视图中创建自定义单元格.
我创建了一个CustomCell.swift类来配置我想要的自定义单元格中的标签,通过storyboard(tableview中的第一个原型单元格)创建它,并将其与标识符链接到cellForRowAtIndexPath方法
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
let cellIdentifier = "huisCell"
var cell: CustomCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CustomCell
if cell == nil {
cell = CustomCell(style: UITableViewCellStyle.Value1, reuseIdentifier: cellIdentifier)
}
cell!.huisAdresLabel.text = "123"
cell!.huisDetailLabel.text = "456"
return cell
}
Run Code Online (Sandbox Code Playgroud)
我的CustomCell.swift代码是这样的:
class CustomCell: UITableViewCell {
@IBOutlet var huisAdresLabel: UILabel
@IBOutlet var huisDetailLabel: UILabel
}
Run Code Online (Sandbox Code Playgroud)
它现在非常基本,但我只是希望它能够工作,因为我可以扩展具有更多属性的单元格并更好地设计样式.
通过DropBox的图片因为我需要10个声誉来正确记录我的问题:)
https://www.dropbox.com/sh/5v9jb6cqp80knze/AAD5-yPR8-KoStQddkqKIbcUa
我希望有人可以解释我做错了什么.
编辑:
为了清理一些东西,在我尝试制作一个自定义单元格之前,我让它使用基本单元格,左侧有一个标签.但是当我尝试设置tableview样式并创建自定义单元格时,它将无法工作.
此外,在测试不同的解决方案时,我遇到了CustomCell.swift中的两个标签为零的问题.即使我做了一个自定义init并且做了一个
self.huisAdresLabel = UILabel()
Run Code Online (Sandbox Code Playgroud)
它仍然是零.在我向您展示的代码中,它打印出以下内容:
<UILabel: 0xb2aadc0; frame = (0 -21; 42 21); text = '123'; …Run Code Online (Sandbox Code Playgroud) 我有一个TableView,我想绑定a的禁用属性Button与ObservableList表的模型的大小.特别是,我想在ObservableList大于2 的大小时禁用按钮.
我怎样才能做到这一点?
在我使用的表中没有选择任何行时禁用另一个按钮
editRoadButton.disableProperty().bind(roadsTable.getSelectionModel().selectedItemProperty().isNull());
Run Code Online (Sandbox Code Playgroud)
有类似的方法吗?
我正在尝试用Java创建一个程序来管理我的bookie帐户.我是java的新手,所以我想我会选择一些简单的东西来看看它是如何工作的.我决定使用tableview并使单个单元格可编辑.我一直在关注这个教程http://java-buddy.blogspot.co.uk/2012/04/javafx-2-editable-tableview.html.它详细介绍了如何使用java代码进行操作,并将其复制到新类中可以完美地运行.我决定尝试调整它以使用FXML,因为我喜欢Sceneviewer.我的问题是,数据被加载到表中,但当我单击/双击一个单元格时,没有任何反应.这是我的代码.
testController.java
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.util.Callback;
import java.net.URL;
import java.util.ResourceBundle;
public class testController implements Initializable {
@FXML
private TableColumn<Account, String> usernameCol;
@FXML
private TableColumn<Account, String> balanceCol;
@FXML
private TableView<Account> accountTable;
@FXML
private TableColumn<Account, String> bookieCol;
@FXML
private TableColumn<Account, String> passwordCol;
private ObservableList<Account> dataList =
FXCollections.observableArrayList(
new Account("bookie", "username", "password", "0"));
@Override
public void initialize(URL location, ResourceBundle resources) {
Callback<TableColumn, TableCell> cellFactory = …Run Code Online (Sandbox Code Playgroud) 我在互联网上看到了向TableView添加行的示例,例如使用Oracle文档中的Person类.
但是我有一个可变数量的列,所以我不能绑定到Person(或任何其他)bean业务对象.
Oracle示例继续展示如何将列绑定到属性名称,但为此,它仅显示如何添加列,而不显示行.
我的问题是,有人可以指向一个Hello,World示例,动态地将任意列和/或行添加到JavaFX 8 TableView中吗?
我试图简单地存储和检索CoreData(我之前用swift成功完成的).我的数据是零,但现在(不知道发生了什么变化)我没有收到错误,只是在tableview中没有显示.我不确定在存储或检索对象时是否存在问题.我已经按照我在另一个应用程序中尽可能接近的方式进行了操作,但似乎有些基本的东西我没有得到.这就是我所拥有的.
我的模特:
import Foundation
import CoreData
@objc(DataModel)
class DataModel: NSManagedObject {
@NSManaged var itemName: String
@NSManaged var quantity: NSNumber
@NSManaged var price: NSNumber
}
Run Code Online (Sandbox Code Playgroud)
在我的tableviewcontroller中,我想要保存数据的文本字段的静态单元格:
import UIKit
import CoreData
class NewItemTableViewController: UITableViewController {
@IBOutlet weak var itemNameTextField: UITextField!
@IBOutlet weak var itemPriceTextField: UITextField!
@IBOutlet weak var itemQuantityTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func saveButton(sender: AnyObject) {
//CoreData
let appDelegate = UIApplication.sharedApplication().delegate as …Run Code Online (Sandbox Code Playgroud) 我是iOS开发的新手,所以请放轻松我吧:)
使用适用于iOS 5的Xcode 4.2,我在IB中构建了一个视图控制器,其中的tableview通过push segue链接到详细视图控制器(在表视图单元级别)
我想根据所选单元格的索引,使用我的数据源中的数据设置详细页面标签.最初我编写"didSelectRowAtIndexPath"只是为了发现在segue处理之后调用它,并发现我需要调用prepareForSegue而不是
我的问题是,无论我尝试什么,因为tableView不是prepareForSegue的传递参数(与我迄今为止使用的大多数其他方法不同),我很难在视图控制器中访问tableView以便调用indexPath方法,这样我可以引用我的数据源
我已经看到很多使用self的例子,如下所示,但是这会导致一个错误,指出viewView在视图控制器中不存在
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
DetailViewController *detail = [segue destinationViewController];
detail.primary = [datasource objectAtIndex:selectedIndexPath.row];
detail.seconday = [datalist objectForKey:detail.primary];
}
Run Code Online (Sandbox Code Playgroud)
我也试过用
ViewController *main = [segue viewController];
Run Code Online (Sandbox Code Playgroud)
而不是使用自我,但这导致相同的问题
我知道我可以将示例重写为Table View Controller,但是想知道这是否可能?正如我所见,人们在开发中使用这两种方法
作为参考,我正在学习本教程... http://kurrytran.blogspot.com/2011/10/ios-5-storyboard-and.html
当我到达完成详细信息页面的部分时,我想,为什么不使用segue将表格视图单元格链接到详细信息页面,并在显示详细信息页面之前编写状态和资本的复制代码.从本教程中可以看出,主控制器是一个视图控制器
我的理解是,如果需要在以后开发更复杂的东西,不使用UITableViewController会给任何应用程序更大的灵活性
希望你可以帮忙,Izzy
在iOS5中,在故事板上使用ARC和原型单元格用于tableView,我可以替换下面的代码:
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
// Configure the cell...
return cell;
Run Code Online (Sandbox Code Playgroud)
有了这个简单的代码??:
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:@"Cell"];
return cell;
Run Code Online (Sandbox Code Playgroud)
我在这个链接上看到了这个:
http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
提前致谢!
Arildo
我正在开发一个Iphone应用程序,我可以使用Assetslibrary枚举资产并将它们加载到表格视图中.用户可以删除应用程序中的行(图片/视频),但如何直接从我的应用程序更新Iphone相册?否则,在刷新时,tableview将重新加载以前删除的资产.
我的问题是如何在第一列中使用tableRow的索引在JavaFX中创建一个新表.
所以我创建了一个类:NrCellFactory.
public class NrCellFactory<S, String> extends TableCellFactory<S,String> {
private class NrCell<S,String> extends TableCell<S,String>{
public NrCell(){
setText(this.getTableRow().getIndex()+"");
}
}
@Override
protected TableCell<S, String> createTableCell(TableColumn<S, String> column) {
return new NrCell();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我设置我的列应显示数字:
nrCol.setCellFactory(new NrCellFactory<Person,String>());
Run Code Online (Sandbox Code Playgroud)
当我加载项目时,nrCol没有数据......
有人能解决这个问题吗?
谢谢